Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2012
krewer krewer is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 39
Poder: 0
krewer Va por buen camino
Ayuda con monthcalendar y sql server

Hola amigos, tengo una gran duda, estoy intentando hacer que cuando seleccione una fecha en mi monthcalendar aparezcan los datos de esa fecha en una grilla, hasta el momento iba bien hasta que me di cuenta que no aparecian los datos, en la base de datos la fecha se guardo de esta manera 2012-02-16 y el monthcalendar la muestra asi 16-02-2012 supongo que ese es el problema, la fecha (que en la base de datos es datetime) la ingrese mediante getdate().

Espero su pronta ayuda para que me guien en este problema gracias.
Responder Con Cita
  #2  
Antiguo 16-02-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola krewer, tienes que darle formato a tu fecha en la consulta que haces, puedes utilizar FormatDateTime.

Código Delphi [-]
FormatDateTime('yyyy-mm-dd', MonthCalendar1.Date)

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 17-02-2012
krewer krewer is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 39
Poder: 0
krewer Va por buen camino
Hola, gracias por el codigo, me ayudo mucho... ahora el drama es que me aparece el siguiente error:

Error 'Operand type clash: int is incompatible with date

Al menos yo creo que no he hecho nada malo, aqui dejo mi codigo

procedure Tfregistro1.fechaClick(Sender: TObject);
var sql:string;
var date:string;
begin

FormatDateTime('yyyy-mm-dd', fecha.Date);
sql:='select * from BITACORA where NICK='+quotedstr(Uvariables.nombre)+' and FECHA='+datetostr(fecha.Date)+'';
fdata.consulta5.Close;
fdata.consulta5.SQL.Clear;
fdata.consulta5.SQL.Add(sql);
fdata.consulta5.Open;
end;


Gracias
Responder Con Cita
  #4  
Antiguo 17-02-2012
krewer krewer is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 39
Poder: 0
krewer Va por buen camino
Muchas gracias de todas maneras lo acabo de solucionar hasta la próxima.
Responder Con Cita
  #5  
Antiguo 17-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola krewer.

Me alegra mucho que hayas solucionado tu problema y estaría buenísimo que compartieras con nosotros la solución que encontraste.

Por favor, cuando incluyas código en tu mensaje usa las etiquetas para darle mayor legibilidad al mismo, su uso es:



Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 18-02-2012
krewer krewer is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 39
Poder: 0
krewer Va por buen camino
Hola asi lo hice

Código Delphi [-]
FormatDateTime('YYYY/MM/DD', fecha.Date);
  sql:='select NICK,HORA,MENSAJE,ESTADO from BITACORA where nick='+quotedstr(date)+' and FECHA=:fecha order by hora desc';
  fdata.consulta5.Close;
  fdata.consulta5.SQL.Clear;
  fdata.consulta5.SQL.Add(sql);
  fdata.consulta5.ParamByName('fecha').AsDate:=fecha.Date;
  fdata.consulta5.Open;
Responder Con Cita
  #7  
Antiguo 22-02-2012
krewer krewer is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 39
Poder: 0
krewer Va por buen camino
Lo mejore de esta manera

Código Delphi [-]
sql:='select NICK,HORA,MENSAJE,ESTADO from BITACORA where nick='+quotedstr(nombre)+' and FECHA='+quotedstr(FormatDateTime('YYYY/MM/DD', fecha.Date))+' order by hora desc';
fdata.consulta7.Close;
fdata.consulta7.SQL.Clear;
fdata.consulta7.SQL.Add(sql);
fdata.consulta7.Open;

Así no paso ningún dato por parámetro
Responder Con Cita
  #8  
Antiguo 22-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola krewer.

Primero que nada agradezco que hayas compartido tu solución.

Aunque el último código es mas compacto, es vulnerable a la inyección SQL. El uso de parámetros evita totalmente esa posibilidad.

Usándo parámetros:
Código Delphi [-]
  with fdata do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select NICK, HORA, MENSAJE, ESTADO ');
    SQL.Add('from BITACORA ');
    SQL.Add('where nick = :PNOMBRE and FECHA = :PFECHA');
    ParamByName('PNOMBRE').AsString:= nombre;
    ParamByName('PFECHA').AsString:= FormatDateTime('YYYY/MM/DD', fecha.Date);
    Open;
  end;
Generámos un código un poco más extenso, pero mucho más seguro.

También hay que destacar que si el valor de 'nombre' es tomado internamente por la aplicación y no ingresado por el usuario, no hay posibilidad de inyección SQL. De todos modos, el uso de parámetros es una buena costumbre.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
MonthCalendar shoulder Varios 9 06-08-2008 01:20:47
ayuda con evento de monthcalendar zazexx Varios 2 13-07-2007 15:44:08
MonthCalendar jorge_mosquera OOP 9 10-04-2007 00:06:45
monthcalendar pzala Varios 5 31-05-2004 23:30:57
Duda con el monthcalendar acrophet Varios 1 06-10-2003 13:53:19


La franja horaria es GMT +2. Ahora son las 22:31:23.


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