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 30-11-2007
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Saber el valor de un Dataset

Buenas a toda la familia del club, hoy vengo con una nueva pregunta, miren tengo un ADODATASET y lo uso para hacer una consulta a una base de datos en SQL para filtrar por dos fechas, pero si le paso como fecha un intervalo que no existe en la tabla me da un error al abrir el DATASET como es de esperar, ahora les pongo el codigo para que vean lo que estoy tratando de hacer y me orienten, en escencia lo que quiero es saber cuando el DATASET encontro el rango de fechas y cuando no???

Gracias a todos ya de antemano


Código:
PathBD         := ExtractFilePath(Application.ExeName);
 CadenaConexion := 'Provider=SQLOLEDB.1;Password=center;Persist Security Info=True;User ID=center;Initial Catalog=CE;Data Source=jocey';
 DataSetrepofechas.ConnectionString := CadenaConexion;
 DataSetrepofechas.CommandText      := 'select * from principal WHERE principal.Fecha_Inicio Between  ''' + dia1 + ''' And ''' + dia2 + '''';
 if DataSetrepofechas.Recordset = nil then
 begin
 ShowMessage('Fuera de Fecha')
 end
  else
 begin
  DataSetrepofechas.Open;
  textcurso.Caption    := DataSetrepofechas.fieldbyname('Nombre_Curso').value;
 textlugar.Caption    := DataSetrepofechas.fieldbyname('Lugar_Ejecucion').value;
 textcliente.Caption  := DataSetrepofechas.fieldbyname('Cliente').value;
 textcontrato.Caption := DataSetrepofechas.fieldbyname('No_Contrato').value;
 textfecha.Caption    := DataSetrepofechas.fieldbyname('Fecha_Inicio').value;
 textestado.Caption   := DataSetrepofechas.fieldbyname('Estado_Curso').value;
 textdias.Caption     := DataSetrepofechas.fieldbyname('dias').value;
 formrefechas.QuickRep1.Preview;
 DataSetrepofechas.Last;
 DataSetrepofechas.Close;
 end;
 end;
 end;
Responder Con Cita
  #2  
Antiguo 30-11-2007
tefots tefots is offline
Miembro
 
Registrado: feb 2005
Posts: 108
Poder: 20
tefots Va por buen camino
..
..........................
Responder Con Cita
  #3  
Antiguo 30-11-2007
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Por Que?

Que paso amigo ? No me explique bien? bueno en fin ya lo resolvi el Dataset tiene una propiedad que se llama RecordCount y si esta en cero es que no tiene valores y si es mayor lo contrario, pero bueno me disculpan por mi pregunta mal formulada, aunque me parece que al responder esto se puede hacer saber con otra respuesta, aqui estamos para ayudarnos...... me parece
Responder Con Cita
  #4  
Antiguo 30-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Hombre, 5 horas no es mucho desde que pusiste el original.

La base de datos dices ser SQL, pero no dices cual

En todo caso, el RecordCount no suele estar implementado en tablas SQL, ya que es costoso averiguar los datos.

Si no hay registros en un rango de fechas, no suele dar error nada, simplemente se muestra vacía la consulta. "DataSetrepofechas.IsEmpty" es true y puedes informar al usuario de que la consulta no devolvió datos, por ende, no es necesario ver el informe ni su presentación preliminar.

Deberías plantearlo así:
Código Delphi [-]
PathBD         := ExtractFilePath(Application.ExeName);
 CadenaConexion := 'Provider=SQLOLEDB.1;Password=center;Persist Security '+
    'Info=True;User ID=center;Initial Catalog=CE;Data Source=jocey';

 DataSetrepofechas.ConnectionString := CadenaConexion;
 DataSetrepofechas.CommandText      := 'select * from principal WHERE  Fecha_Inicio Between  :dia1 and :dia2';
 DataSetrepofechas.Parameters.Parambyname('dia1').Value := datetimepicker1.date;
 DataSetrepofechas.Parameters.Parambyname('dia2').Value := datetimepicker2.date;
  DataSetrepofechas.Open;
 if DataSetrepofechas.IsEmpty then
 begin
 ShowMessage('No hay registros ')
 end
  else
 begin
  textcurso.Caption    := DataSetrepofechas.fieldbyname('Nombre_Curso').value;
 textlugar.Caption    := DataSetrepofechas.fieldbyname('Lugar_Ejecucion').value;
 textcliente.Caption  := DataSetrepofechas.fieldbyname('Cliente').value;
 textcontrato.Caption := DataSetrepofechas.fieldbyname('No_Contrato').value;
 textfecha.Caption    := DataSetrepofechas.fieldbyname('Fecha_Inicio').value;
 textestado.Caption   := DataSetrepofechas.fieldbyname('Estado_Curso').value;
 textdias.Caption     := DataSetrepofechas.fieldbyname('dias').value;
 formrefechas.QuickRep1.Preview;
 DataSetrepofechas.Last;
 DataSetrepofechas.Close;
 end;
 end;
 end;
Así no tendrás tampoco problemas de formatos de fecha dd/mm/yyyy o mm/dd/yyyy etc.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 01-12-2007 a las 11:01:34.
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
Como saber si un valor es entero? Gaim2205 Varios 4 19-09-2007 19:10:44
Mascaras de datset muestran algo diferente al valor del reg del dataset.gracias crist1an OOP 3 27-07-2006 22:32:22
Saber el campo con valor mas alto ilichhernandez Conexión con bases de datos 2 10-11-2005 02:00:44
Saber cuando se activa el dataset asociado a un TDBGrid __cadetill OOP 4 17-06-2004 12:37:24
Saber si un Tabla(dataset) esta siendo usado por otro componente cacuna OOP 3 26-05-2004 18:21:43


La franja horaria es GMT +2. Ahora son las 12:38:51.


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