PDA

Ver la Versión Completa : Consulta con Tquery


Alsaca
08-06-2008, 17:30:09
Buenas tardes a todos/as. Comento mi problema, el cual me tiene parado totalmente.


Tengo un form principal, con una tabla paradox llamada tclient, en la cual hay cuatro date, (f_exp, f_cad) y (f_expe, f_cade). Pulsando un botón de este form, consigo ir a otro form, donde me aparece un dbgrid. Quisiera conectarlo con una tquery. Mi pregunta es la siguiente, al pulsar:

Botón1(Por Caducar)

Al pulsar este botón, que me aparezcan en el dbgrid todas las fechas que no estén caducadas.


Botón2(Por Caducar 30 días y menos de 30 días)

Al pulsar este botón, que me aparezcan en el dbgrid todas las fechas que le falten 30 días para caducar.


Botón3(Caducadas)

Al pulsar este botón, que me aparezcan en el dbgrid todas las fechas caducadas.


Espero haberlo explicado bien, o por lo menos que podáis entender, lo que necesito.


Un saludo y muachas gracias.

tcp_ip_es
23-06-2008, 12:31:25
Lo mismo ya lo has solucionado, ya han pasado 2 semanas desde tu post :D pero bueno como yo lo haría es asociando el dbgrid a una consulta genérica y cuando pinches los botones cambies dicha consulta: siendo estas las consultas:


// onclick Boton 1
tquery.close;
tquery.sql.clear;
tquery.sql.add('select f_cad from tclient where f_cad < :DAhora');
tquery.parambyname('DAhora').value:=DateToStr(Date);
tquery.open;

// onclick Boton 2: Para 30 días exactos
tquery.close;
tquery.sql.clear;
tquery.sql.add('select f_cad from tclient where f_cad = :DTreinta);
tquery.parambyname('Dtreinta').value:=DateToStr(Date+30);
tquery.open;

// onclick Boton 3
tquery.close;
tquery.sql.clear;
tquery.sql.add('select f_cad from tclient where f_cad > :DAhora);
tquery.parambyname('DAhora').value:=DateToStr(Date);
tquery.open;


Espero haberte ayudado. Saludos, Tony

Alsaca
23-06-2008, 12:46:06
Gracias Tony, lo probaré inmediatamente y te cuento. La verdad que ya no esperaba respuestas, por eso te estoy muy agradecido.



Saludos.

Alsaca
23-06-2008, 13:15:29
Tony, ya lo he probado, y me da el siguiente error: Type mismatch in expresion.




Saludos.

tcp_ip_es
23-06-2008, 15:25:34
cambia en los 3 tquery.parambyname(xxxx).value por la siguiente linea:

tquery.parameters[0].value:=DatetoSTR(xxxxx)

Ya me cuentas....

Alsaca
23-06-2008, 16:33:31
Tony, lo siento, pero ahora da este error: Undeclarer identifier: 'parameters'.




Saludos.

tcp_ip_es
24-06-2008, 08:13:11
upsss perdona, es que yo trabajo con tadoquerys, supongo que tu trabajaras con tquery a secas ;), bueno pues con una tquery en vez de parameters es params de tal manera que:

query1.Params[0].value:=Edit1.text;

Saludos, Tony

basti
24-06-2008, 08:20:53
Te aconsejo que no uses value para los parámetros cuando sea posible, sobre todo si el campo es de tipo fecha. Así hace la conversión del formato fecha automáticamente sin preocuparte del formato.


tquery.ParamByName('DAhora').AsDatetime := Date;

Alsaca
25-06-2008, 16:22:13
Gracias a todos lo s que me habéis ayudado, prácticamente está resuelto.




Saludos, Alsaca.