Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problemas con AdoDataset (https://www.clubdelphi.com/foros/showthread.php?t=52036)

jocey 08-01-2008 18:16:46

problemas con AdoDataset
 
Hola de Nuevo a la gran familia de este foro, amigos, yo tengo un programa en el cual realizo una consulta a una base de datos en SQL 2000, esta se realiza para consultar un rango entre dos fechas y los valores se muestran en un reporte con quickreport, el rango de fecha es seleccionado por el usuario de dos DateTimePicker, ahora mientras el usuario entre intervalos existentes en la tabla esto funciona de maravillas, ahora si selccionado un intervalo que no existe, me da un error diciendo que no puede realizar esa operacion con un Dataset ya abierto..... aqui les pongo el codigo para ver en que me pueden ayudar....

Muchas gracias por su tiempo

Código:

[IMG]file:///C:/DOCUME%7E1/JOCEYR%7E1/CONFIG%7E1/Temp/moz-screenshot.jpg[/IMG]procedure TFormfechas.Button1Click(Sender: TObject);
var dia1, dia2 : Tdatetime;
temp : String;
begin
dia1 := DateTimePicker1.Date;
dia2 := DateTimePicker2.Date;
if formtipo.Radiotiempo.Checked  then // solo para consultar por fechas}
begin
with formrefechas do
begin

 PathBD        := ExtractFilePath(Application.ExeName);
 CadenaConexion := 'Provider=SQLOLEDB.1;Password=H4E7FH3;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  ''' + DatetoStr(dia1) + ''' And  ''' + DatetoStr(dia2) + '''';
 DataSetrepofechas.Open;

 if DataSetrepofechas.RecordCount = 0  then
  begin
  ShowMessage('No Existen Valores para que mostrar en su busqueda');
    end
    else
        begin
            try

 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;
 textcosto.Caption    := DataSetrepofechas.fieldbyname('costo').value;
 textmes.Caption      := DataSetrepofechas.fieldbyname('Mesfact').value;
 textano.Caption      := DataSetrepofechas.fieldbyname('Anofact').value;

        finally
 formrefechas.QuickRep1.Preview;
 DataSetrepofechas.Last;
 DataSetrepofechas.Close;
            end;
        end;
    end;
  end;


waly2k1 09-01-2008 05:27:26

Rta.
 
Si te fijas cierras el datasource únicamente cuando hay registros, y al no cerrar te genera error cuando intentas abrirlo nuevamente.

Sino siempre que vayas a abrir, poné DataSetrepofechas.Active := false;
de esta manera está inactivo, generas la consulta y luego lo pones en true,
creo que con esto no tendrias problemas.

Salu2

jocey 09-01-2008 13:59:20

Problemas al cerrar Adodataset
 
Amigo, el problema es que cuando no tiene registros no se deja cerrar, me da error


La franja horaria es GMT +2. Ahora son las 09:18:40.

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