Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   consultas por fechas en ADO (https://www.clubdelphi.com/foros/showthread.php?t=73946)

josro0ck 25-05-2011 20:53:47

consultas por fechas en ADO
 
necesito hacer una consulta con las citas que esten registradas para hoy, pero no consigo hacerlo, parece que tengo algun problema de sql o no se como usarlo en delphi, ni base de datos tiene un campo fecha de formato dd/mm/aaaa y he probado la coneccion con otras consultas y si me da resultados, a excepcion de este caso , y ya tengo registros con el resultado del criterio en la base de datos
miren mi codigo

Cita:

var
dd, mm, aa:word;
dia, ddd, mmm, aaa:string;
begin
decodedate(date, aa, mm, dd);
ddd:=inttostr(dd);
if length(ddd)<2 then
ddd:='0'+ddd;
mmm:=inttostr(mm);
if length(mmm)<2 then
mmm:='0'+mmm;
aaa:=inttostr(aa);
dia:=Concat(ddd,'/',mmm,'/',aaa);
{
q1.Close;
q1.SQL.Add('SELECT * FROM citas WHERE fecha = ' + dia);
q1.Open;
q1.First; }
edit1.text:='SELECT * FROM citas WHERE fecha = ' + dia;
end;
y el query queda asi, es este
Cita:

SELECT * FROM citas WHERE fecha = 25/05/2011
por favor necesito ayuda, que es lo que he estado haciendo mal?, he estado buscando, y no he encontrado muchas cosas utiles,

Gracias.

oscarac 25-05-2011 21:01:32

has probado ponerlo asi?
Código Delphi [-]
 
edit1.text:='SELECT * FROM citas WHERE fecha = ' + FormatDateTime('dd/MM/yyyy', dia);
end;

josro0ck 25-05-2011 21:13:59

Cita:

Empezado por oscarac (Mensaje 401342)
has probado ponerlo asi?

Código Delphi [-]
edit1.text:='SELECT * FROM citas WHERE fecha = ' + FormatDateTime('dd/MM/yyyy', dia);
end;



si lo habia intentado, pero me marca
Cita:

[Error] Unit1.pas(138): There is no overloaded version of 'FormatDateTime' that can be called with these arguments

oscarac 25-05-2011 21:22:04

te hago una pregunta
porque descompones la fecha y la vuelves a armar ?

porque no pruebas asi

Código Delphi [-]
 
edit1.text:='SELECT * FROM citas WHERE fecha = ' + FormatDateTime('dd/MM/yyyy', Date);

P.D. cuando coloques codigo delphi utiliza el icono del Partenon (al lado izquierdo del icono que dice SQL)

josro0ck 25-05-2011 21:44:44

Cita:

Empezado por oscarac (Mensaje 401344)
te hago una pregunta
porque descompones la fecha y la vuelves a armar ?

porque no pruebas asi


Código Delphi [-]
edit1.text:='SELECT * FROM citas WHERE fecha = ' + FormatDateTime('dd/MM/yyyy', Date);






P.D. cuando coloques codigo delphi utiliza el icono del Partenon (al lado izquierdo del icono que dice SQL)



si me di cuenta luego de eso, y lo que hice fue cambiar el codigo por esto
Cita:

var
dia:string;
fechaprueba:tdatetime;
begin
fechaprueba:=date;
formatdatetime('dd/mm/yyyy', fechaprueba);
dia:=datetostr(fechaprueba);
q1.Close;
q1.SQL.Clear;
q1.SQL.Add('SELECT * FROM citas WHERE fecha = ' + dia);
q1.Open;
q1.First;
edit1.text:='SELECT * FROM citas WHERE fecha = ' + dia;
end;
pero no he avanzado mas, por cierto, a que te refieres con el icono del partenon? cual es?, tiene que estar en el query o algo asi?

oscarac 25-05-2011 21:54:54

emulando a Casimiro.....


y aun no mencionas su con el codigo que te di funciona...
solo dices que lo cambiaste pero sigues usando la misma instruccion en el query

luisgutierrezb 25-05-2011 22:06:38

Basado en lo que dice Oscarac, la instruccion seria:

edit1.text:='SELECT * FROM citas WHERE fecha = ' + QuotedStr(FormatDateTime('dd/MM/yyyy', vFecha));

donde vFecha es una variable de tipo Date o Datetime conteniendo la fecha

josro0ck 25-05-2011 22:10:27

Cita:

Empezado por oscarac (Mensaje 401353)
emulando a Casimiro.....


y aun no mencionas su con el codigo que te di funciona...
solo dices que lo cambiaste pero sigues usando la misma instruccion en el query


si lo intente pero no funciono, me marca error cuando trato de compilarlo, exactamente lo mismo que puse arriba, pero lo acomode de este modo
Código Delphi [-]
var
dia:string;
fechaprueba:tdatetime;
begin
fechaprueba:=date;
formatdatetime('dd/mm/yyyy', fechaprueba);
dia:=datetostr(fechaprueba);
q1.Close;
q1.SQL.Clear;
q1.SQL.Add('SELECT * FROM citas WHERE fecha = ' + dia);
q1.Open;
q1.First;
edit1.text:='SELECT * FROM citas WHERE fecha = ' + dia;
end;

solo que no me da resultados

oscarac 25-05-2011 22:17:19

edit1.text:='SELECT * FROM citas WHERE fecha = ' + dia;


eso para que lo pones?
donde estas mostrando los datos? en un grid?

josro0ck 25-05-2011 22:29:16

Cita:

Empezado por oscarac (Mensaje 401356)
edit1.text:='SELECT * FROM citas WHERE fecha = ' + dia;


eso para que lo pones?
donde estas mostrando los datos? en un grid?

no, en un edit, pero es solo para ver como queda la sentencia al final, los datos al inicio queria ponerlos en un grid, pero no supe como, creo que lo mas factible sera guardar la fecha automaticamente con delphi en la base de datos pero con formato de texto a travez de un form y de ahi sacar la consulta mas facilmente, la verdad estoy desesperado xD y estaba viendo si lo hacia con paradox pero este es un proyecto que tengo que entregar el lunes y la verdad no tengo muchas ganas de cambiarlo por completo, xD tengo mucho que hacer.

de todos modos muchas gracias y perdon por las molestias, en un futuro buscare la forma de mejorar este proyecto.

por cierto, en esta pagina se tiene que hacer algo al terminar un tema?

oscarac 25-05-2011 22:39:31

que yo sepa nada
yo siempre agradezco a las personas que me ayudaron

abelg 02-08-2011 14:58:12

mira creo lo mejor es:
Código Delphi [-]
q1.sql.clear;
q1.sql.add('SELECT * FROM citas WHERE fecha =:pfec')
q1.parambyName('pfec').AsDateTime := fechaprueba;
//query1.Params.ParamByName('pfec').SsDateTime := fechaprueba; // o asi 
q1.open;

salu2


La franja horaria es GMT +2. Ahora son las 07:44:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi