Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2004
Vicsan Vicsan is offline
Registrado
 
Registrado: may 2004
Posts: 2
Poder: 0
Vicsan Va por buen camino
Necesito ayuda con consulta SQL

Hola a todos, tengo que hacer una consulta SQL y me da un error en tiempo de ejecucion, el error es:

Capability not supported

y el codigo el siguiente:

procedure TfmBuscarCita.BtBuscarClick(Sender: TObject);
begin
with SBuscarCitas do begin
Close;
with SQL do begin
Clear;
Add('SELECT c.fecha as Fecha,c.hora as Hora,u.nombre as Fisioterapeuta ,c.nombre as Paciente');
Add('FROM "Citas.db" c, "usuarios.db" u');
Add(' WHERE fecha >= "'+ DateToStr(DTPInicio.date)+'" AND strtodate(fecha) <="'+DateToStr(DTPFin.Date)+'"');
Add(' AND "'+EditId_Usuario.text+'"=id_Usuario');
if(editNombrePaciente.Text<>'*') then Add(' AND Nombre = "'+editNombrePaciente.Text+'"');
Add(' AND c.id_Usuario=u.Id_Usuario');
Add(' ORDER BY c.fecha,c.hora');
end;//SQL
ExecSQL;
Open;
end;//Query
end;

El problema me lo da al añadir la linea subrayada. Creo q es por culpa de los formatos de la fecha, pero no lo se fijo. El formato tanto de fecha (que es un campo de la BD) como del del DTPInicio.date y DTPFin.date (son datetimepicker) es de tipo datetime.
Muchas gracias por vuestra ayuda.
Responder Con Cita
  #2  
Antiguo 19-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Hola Vicsan

Ante todo darte la bienvenida a los foros y recomendarte la lectura de la Guía de Estilo (ver firma o enlace en la parte superior de la página) y la utilización de las etiquetas (ver primer mensaje de cualquier foro)

Una vez dada la bienvenida, vamos al tema

Puedes solucionar tu problema de varias maneras. Una de ellas es usando parámetros en la consulta

Código Delphi [-]
  Clear;
  Add('SELECT c.fecha as Fecha,c.hora as Hora,u.nombre as Fisioterapeuta ,c.nombre as Paciente');
  Add('FROM "Citas.db" c, "usuarios.db" u');
  Add(' WHERE fecha between :FIni AND :FFin ');
  Add(' AND id_Usuario = :user');
  if (editNombrePaciente.Text<>'*') then 
    Add(' AND Nombre = :Paciente ');
  Add(' AND c.id_Usuario = u.Id_Usuario');
  Add(' ORDER BY c.fecha,c.hora');
end;//SQL

ParamByName('FIni').AsDateTime := DTPInicio.date;
ParamByName('FFin').AsDateTime := DTPFin.date;
ParamByName('User').AsString := EditId_Usuario.text;
ParamByName('Paciente').AsString := editNombrePaciente.Text;

O bien dándole el formato que necesita usando la función FormatDateTime

Código Delphi [-]
Add(' WHERE fecha between '+ QuotedStr(FormatDateTime('mm/dd/yyyy', DTPInicio.date)) + 
   ' AND '+ QuotedStr(FormatDateTime('mm/dd/yyyy', DateToStr(DTPFin.Date)) );

Espero te sirva

PD: ves la diferencia entre usar las etiquetas y no usarlas?
Responder Con Cita
  #3  
Antiguo 19-05-2004
Vicsan Vicsan is offline
Registrado
 
Registrado: may 2004
Posts: 2
Poder: 0
Vicsan Va por buen camino
Muchas Gracias, me leere lo de la Guia de estilo. La verdad es q no sabia nada. Ciao.
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


La franja horaria es GMT +2. Ahora son las 15:22:12.


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