FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con eof() en clientdataset
Buenos dias amigos, tengo experiencia en delphi pero me surgio una problema bastante particular. Ocurre que tengo un ClientDataSet al cual le agrego filas manualmente como resultado de otro proceso. El punto es que cuando quiero hacer un reccorido completo del client mediante un while, luego de acceder al ultimo registro, no encuentra el eof y continua iterando infinitamente, sin embargo no se agregaron registros vacios ni nda por el estilo. Cuando quiero imprimir un reporte basandome en este Client ocurre lo mismo, me muestra infinitamente los datos de la ultima fila. Si alguien me puede echar un cable, desde ya muchas gracias
__________________
Se vemos! |
#2
|
||||
|
||||
Buenos días,
-
__________________
"constructive mind, destructive thoughts" |
#3
|
|||
|
|||
Buenas, gracias por respoender, mi delphi es el 14.0.3593.25826 (2010). En cuanto a la segunda pregunta creo que no entiendo bien lo de replicar el problema en forma aislada, el problema surge al final de un proceso complejo. No observe un problema similar en otros datasets, incluso este dataset problematico estaba funcionando correctamente hasta hace poco.
__________________
Se vemos! |
#4
|
||||
|
||||
Entonces, por último, me atrevería a decir que el problema está en las iteraciones de ese proceso complejo; aún sin ver el código.
__________________
"constructive mind, destructive thoughts" |
#5
|
||||
|
||||
Hola Ezecool.
Es poca la información que proporcionas, ayudaría conocer más sobre el "proceso complejo" que mencionas. Si realmente el ciclo avanza (con Next, por ejemplo), entonces es muy probable que la propiedad EOF del conjunto de datos sí alcance el valor de True, sólo que alguna acción del proceso está causando que se ponga nuevamente False. Teniendo a la mano los fuentes de la VCL (carpeta Source de Delphi) y sabiendo usar el depurador integrado, es fácil determinar si lo anterior ocurre y a razón de qué. Revisando el código fuente de la clase TDataSet (unidad DB.pas en Delphi 7 y Data.DB.pas en XE2), podemos ver que sólo hay dos lugares donde, explícitamente, la propiedad EOF de un conjunto de datos se pone en False: Aprovechando el estupendo depurador de Delphi, lo siguiente es algo que puedes hacer para encontrar la causa del problema:
Al. Última edición por Al González fecha: 25-04-2013 a las 18:11:54. |
#6
|
|||
|
|||
Bueno AL, y yo crei que sabia Delphi, voy a probar lo que me recomiendas, la verdad que nunca hice uso de la depuracion de la VCL, despues cuento como me fue. Muchas gracias
__________________
Se vemos! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con clientdataset | lina maria | Conexión con bases de datos | 5 | 26-10-2008 18:26:30 |
Problema con ClientDataSet | kaopectate | Conexión con bases de datos | 3 | 13-02-2005 22:08:57 |
Problema con ClientDataSet | Slash | Conexión con bases de datos | 1 | 10-09-2004 23:15:01 |
Problema con ClientDataSet | waezu | Providers | 2 | 30-03-2004 18:36:00 |
Problema de ClientDAtaset con xml | carlosmoralesm | Internet | 6 | 03-03-2004 21:46:16 |
|