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 01-06-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
dataset.free Error

Tengo el Siguiente error.. Cuando Quiero hacer el FREE del objeto Adataset (del tipo TADODataset)..

el error es..

El valor EOF o BOF es True, o el actual registro se elimino; la operacion solicitada requiere de un registro actual.



Código Delphi [-]
           Adataset:=TAdodataset.create(nil);
           SelectTodo(ADataSet,TIPO);
           If adataset.Eof and adataset.bof then
             exit
           else
             While not Adataset.Recordset.Eof  do
               BEGIN
                 Application.ProcessMessages;
                 aux.MsgID:=ADataSet.Recordset.Fields.Item['MsgID'].value;
 
  //Aca hago varios tonterias pero nada del otro mundo
 //recorro el record.
 
                   ADataSet.Recordset.MoveNext;
               end;
           if ADataSet.Eof and Adataset.bof then
             ADataSet.Recordset.EOF;
 
           Adataset.Free;
           EscribirAuditoria('Fin EliminarRecordGW RecAppoint');
Responder Con Cita
  #2  
Antiguo 01-06-2005
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
Hola Enan0,

te he quitado algunas cosas que veo que no son necesarias. Prueba con esto:

Código Delphi [-]
   Adataset := TAdodataset.create(Application);
   SelectTodo(ADataSet,TIPO);
   While not Adataset.Recordset.Eof  do BEGIN
     Application.ProcessMessages;
     aux.MsgID := ADataSet.Recordset.Fields.Item['MsgID'].value;
     ... 
     ADataSet.Recordset.MoveNext;
   end;
   try
     Adataset.Free;
   except
   end;
   EscribirAuditoria('Fin EliminarRecordGW RecAppoint');
Responder Con Cita
  #3  
Antiguo 01-06-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Hola Hermes_32

Código Delphi [-]
 
 if ADataSet.Eof and Adataset.bof then
           ADataSet.Recordset.EOF;

eso no estaba.. fue un error en el copy and paste..
pero el error lo sigue generando con lo que me pasaste!!
Y la primer comparacion
Código Delphi [-]
If adataset.Eof and adataset.bof then
es simplemente para verificar que el Recordset no este vacio
Responder Con Cita
  #4  
Antiguo 01-06-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Enan0
Código Delphi [-]
If adataset.Eof and adataset.bof then
es simplemente para verificar que el Recordset no este vacio
Para eso puedes utilizar ADataSet.IsEmpty

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 01-06-2005
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
¿Qué hace esta función? Mira a ver si tiene el dataset bloqueado y por eso te da el error al intentar liberar memoria.
Código Delphi [-]
  SelectTodo(ADataSet,TIPO);

Intenta con FreeAndNil(ADataSet).
Responder Con Cita
  #6  
Antiguo 01-06-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Gracias.. FEDE.. con el DAto del isempty

Hermest_32, lo unico que hace esa funcion es hacer un select * ....
y nada le asigna el recodrset ahi.. listo.. la funcion se finaliza ok.. no queda nada blockeado...
voy a intentar con el ultimo dato a ver que onda.!!!!
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 14:41:24.


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