PDA

Ver la Versión Completa : problema al filtrar adoquery


Van_Falen
08-01-2008, 18:46:06
Hola. Yo trabajo con un modulo que se tiene que abrir tablas de visualfoxpro utilizando ODBC.
Utilizo un TAdoConnection para abrir el origen de datos y un TAdoQuery para realizar las consultas.
No tengo problemas al abrir la conexion ni al ejecutar la consulta del query.
Mi problema es al aplicar el filtro al TAdoQuery.
Si el filtro esta formado de la siguiente manera AdoQuery.Filter='producto='+quotedstr('001'); no hay problema, yo puedo observar en un dbgrid como se filtran los registros, pero si el filtro es de la siguiente manera: AdoQuery.Filter='producto='+quotedstr('00-001'); (noten el guion en la clave del producto), entonces obtengo el error de "la operacion en varios pasos genero errores"
He notado que en las claves de los productos que tienen guiones es cuando obtengo ese error.
No se si el guion es un caracter especial o tengo que aplicar algun caracter de escape para poder utilizarlo.
Ojala puedan ayudarme.

enecumene
08-01-2008, 18:57:39
Hola, Mediante que componente realizas el filtro? a traves de un edit? si es asi, intenta quitando el Quotestr y poniendo comodines de esta manera:

Filter='producto=''' Edit1.Text '*'';

Tambien es bueno que postees el codigo completo para mayor entendimiento.

Saludos.

Van_Falen
08-01-2008, 20:44:09
Aqui pongo un fragmento del codigo con el que tengo problemas
como pueden ver es en un oncalcfields de otro query y de ahi se obtienen las claves de los materiales para hacer el filtro.
procedure TfrExplota.qExplota4CalcFields(DataSet: TDataSet);
var
cont,cont2:integer;
i:integer;
nFactor,cuantos:Real;
bFound:boolean;
encontrados en las existencias de adminpaq
begin
With QExplota4 do begin
if(Dataset.fieldbyname('Cve').asstring<>'')then begin
moduloAdminpaq.qAdoInveAdminPaq.Filter:='producto='+quotedstr(Dataset.fieldbyname('Cve').asstring);
//aqui es donde manda el error, el codigo del producto sale del dataset en
//el que se esta ejecutando el oncalcfields, y de hecho esta sentencia
//funciona mientras la clave obtenida no traiga un guion