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 15-11-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Consultar Campo Fecha por Parametro utilizando ADOConexion

Hola a Todos:

Pasar de componente DBExpress a ADO es un paso que crei que seria sencillo.

Sucede que tengo una pequeña base de Dato en SQL Server 2005 en el que tengo que realizar una consulta por fecha seleccionada:

Tengo mi ADOQuery el cual en su propiedad String escribí lo siguiente:

Código SQL [-]
select userid, checktime from checkinout where checktime =:fecha

ahora en mi botón buscar practicamente hice esto:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
buscafecha : TDateTime;
begin
 buscafecha := DateTimePicker1.DateTime;
 ClientDataSet2.Close;
 with ADOQuery2 do
 begin
   Close;
   sql.Clear;
   sql.Add('select userid, checktime from checkinout where checktime =:fecha');// aquí no se si es lo correcto
   Parameters.ParamByName('fecha').Value := buscafecha;
   open;
 end;
 ClientDataSet2.Open;
end;

Pero al final solamente me activa mi ClientDataSet...


Alguna sugerencia

Saludos

novato_erick
Responder Con Cita
  #2  
Antiguo 15-11-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
A que tienes conectado el adoquery?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 15-11-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No uso clientdataset, pero:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 ClientDataSet2.Close;
 with ADOQuery2 do
 begin
   Close;
   sql.Text:= 'select userid, checktime from checkinout where checktime = :fecha'
   Parameters[0].Value := DateTimePicker1.DateTime;
   open;
   ClientDataSet2.Open;
 end;
 
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 15-11-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Hola Caral Gracias por responder:

Lo tengo conectado al componente ADOConnection1 y a que te refieres con:

Cita:
Caral dice:
Hola
No uso clientdataset, pero:
Saludos

novato_erick
Responder Con Cita
  #5  
Antiguo 15-11-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
en mi Base de datos en SQL 2005 tengo en la Tabla CHECKINOUT CAMPO CHECKTIME guardado lo siguiente: 08/01/2012 09:20:11 a.m.

he notado que tal vez me hace falta la hora para traer la consulta idéntica pero es algo que no es posible ya que necesito que me muestre los datos específicamente en esa fecha independientemente la hora ya que son marcas de empleados realizados en un relog biometrico.


Saludos
Responder Con Cita
  #6  
Antiguo 15-11-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Bueno ya entendí cuando quisiste decir que no usas el ClientDataSet

bueno lo hice ahora de esta manera siguiendo las sugerencia en este linck: http://www.clubdelphi.com/foros/show...34&postcount=7

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
with ADOQuery3 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select userid, checktime from checkinout where checktime =:fecha');
    Parameters.ParamByName('fecha').Value:= FormatDateTime('dd/mm/yyyy',DateTimePicker2.Date);
    Open;
  end;
end;
Pero el resultado es el mismo... nada me trae jejejeje...


Saludos

novato_erick
Responder Con Cita
  #7  
Antiguo 20-11-2012
jsc jsc is offline
Miembro
 
Registrado: nov 2003
Posts: 144
Poder: 21
jsc Va por buen camino
Cita:
Empezado por novato_erick Ver Mensaje
Bueno ya entendí cuando quisiste decir que no usas el ClientDataSet

bueno lo hice ahora de esta manera siguiendo las sugerencia en este linck: http://www.clubdelphi.com/foros/show...34&postcount=7

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
with ADOQuery3 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select userid, checktime from checkinout where checktime =:fecha');
    Parameters.ParamByName('fecha').Value:= FormatDateTime('dd/mm/yyyy',DateTimePicker2.Date);
    Open;
  end;
end;
Pero el resultado es el mismo... nada me trae jejejeje...


Saludos

novato_erick
hola
yo hice pruebas con este codigo y no me dio ningun tipo de problemas
Código:
procedure TForm1.Button5Click(Sender: TObject);
begin
   with ADOQuery1 do
   begin
      close ; sql.clear; parameters.clear ;
      sql.Add('SELECT * FROM TABLA1 WHERE FECHA = :fecha');
      parameters.ParamByName('fecha').value := formatdatetime('dd/mm/yyyy',datetimepicker1.Date);
      open;
   end;
end;
en ejemplos mas arriba tienes codigo
Código:
with ADOQuery2 do...
en este ultimo post el codigo es diferente
Código:
with ADOQuery3 do...
no se si esto se debe a pruebas que has hecho o te puede venir el problema de ahi si luego los grid apuntan a uno u otro Query
por otra parte se me ocurre que pruebes a hacer como en el ejemplo que te pongo
Código:
parameters.clear
quiza de otra consulta tengas algun parametro con el mismo nombre o algo y no ejecute bien o coja bien los valores
saludos,
Responder Con Cita
  #8  
Antiguo 20-11-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Hola Agradeciendo tu atención:

Realize tu ejemplo de igual manera solo activa el AdoQuery sin recibir nada.

Pero en SQL Server el campo checktime también posee hora.

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
  with ADOQuery3 do
    begin
     Close;
     SQL.Clear;
     Parameters.Clear;
     SQL.Add('select userid, checktime from checkinout where checktime =:fecha');
     Parameters.ParamByName('fecha').Value:= FormatDateTime('dd/mm/yyyy',DateTimePicker2.Date);
    Open;
   end;
end;

Saludos

novato_erick
Responder Con Cita
  #9  
Antiguo 21-11-2012
jsc jsc is offline
Miembro
 
Registrado: nov 2003
Posts: 144
Poder: 21
jsc Va por buen camino
ese puede ser el problema entonces
buscamos una fecha sobre un campo que realmente almacena algo mas
me explico:
si buscamos en el campo algo que contenga formato 'dd/mm/yyyy' con
Código:
where fecha=:fecha
y al valor de
Código:
:fecha
le asignamos por ejemplo 21/11/2012 no devolvera nada si en realidad en la base de datos el dato almacenado es por ejemplo:
Código:
21/11/2012 07:38:00
para este caso se me ocurre que pruebes a sustituir el codigo por el siguiente que te pongo
Código:
procedure TForm1.Button5Click(Sender: TObject);
begin
   with ADOQuery1 do
   begin
      close ; sql.clear; parameters.clear ;
      sql.Add('SELECT * FROM TABLA1 WHERE FECHA LIKE :fecha');
      parameters.ParamByName('fecha').value := formatdatetime('dd/mm/yyyy',datetimepicker1.Date)+'%' ;
      open;
   end;
end;
la clave esta en que utilices
Código:
WHERE FECHA LIKE...
y que acomodes los comodines
Código:
%
segun el formato en que se guarda el dato en la base de datos para que te devuelva el resultado
en el ejemplo te devolvera cualquier cosa que coincida con la fecha del datetimepicker + cualquier cosa detras

espero haberte ayudado
saludos,
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
Consultar solo el mes de una fecha rufo Varios 3 23-08-2012 20:42:35
Consultar un dato asociado a un max(campo) Gaim2205 SQL 2 04-08-2008 15:08:19
Consultar la fecha de un timestamp Vlady SQL 1 22-05-2008 00:53:06
Seleccionar Campo a Consultar eudy.net Conexión con bases de datos 5 14-03-2008 21:09:47
Buscar registro por fecha utilizando filtro de ClientDataSet radiohead Conexión con bases de datos 8 31-08-2007 10:10:40


La franja horaria es GMT +2. Ahora son las 04:39:11.


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