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)
-   -   Problema al abrir y cerrar un TClientDataSet (https://www.clubdelphi.com/foros/showthread.php?t=55701)

delphijm 24-04-2008 11:35:08

Problema al abrir y cerrar un TClientDataSet
 
Hola,

Estoy realizando un proyecto con Delphi 2007 y MySQL...

Tengo un DataModule en el que tengo los componentes:l SQLConection, SQLDataSet, DataSetprovider,TClientDataSet i TDataSource...

El SQLDataSet es una Query con parametros, para leer los registros de una tabla con Desde-Hasta...

Ademas tengo un formulario, en el que en el evento OnCreate hago un open del TClientDataSet y lo hace correctamente llenandome todos los campos de la pantalla cuando abro el formulario...

En el evento OnClose del formulario, hago un close del TClientDataSet para que al volver a entrar me refresque los datos (al volver a hacer el open en el OnCreate)...

El problema esta en que al volver a entrar i hacer el open del TClientDataSet no me devuelve ningun registro... dejando todos los campos en blanco?

Tengo otros formularios trabajando de la misma forma y funcionan bien, la diferencia esta en que en esos el DataSource esta en el propio formulario y no en el DataModule... Pero en este caso necesito tener el DataSource en el propio Datamodule... No se si esto puede estar relacionado...

Alguien sabe que puede estar pasando?

Gracias de antemano!!

santus 24-04-2008 15:54:49

raro lo que te sucede.

nose si te servirá, pero yo en mi caso tambien tengo todo en un datamodulo y tambien abro todas los dataset en el momento de mostrar el formulario. La única dif es que al momento de cerrar el formulario dejo todos los datasets abiertos, y para actualizarlos uso ClientDataSet1.Refresh ... nose si te servirá... por lo menos ami me funciona bien así.

Suerte.

delphijm 24-04-2008 16:40:57

Cita:

Empezado por santus (Mensaje 282250)
raro lo que te sucede.

nose si te servirá, pero yo en mi caso tambien tengo todo en un datamodulo y tambien abro todas los dataset en el momento de mostrar el formulario. La única dif es que al momento de cerrar el formulario dejo todos los datasets abiertos, y para actualizarlos uso ClientDataSet1.Refresh ... nose si te servirá... por lo menos ami me funciona bien así.

Suerte.

Hola Santus...

Si, tambien he probado dejandolos abiertos y haciendo un refresh al volver... Y me pasa lo mismo... La primera vez que hago el open todo va bien pero parece que cualquier operacion que haga a partir de entonces con el DataSet no funciona... Demasiado raro...

santus 24-04-2008 17:14:34

Cita:

Empezado por delphijm (Mensaje 282277)
Hola Santus...

Si, tambien he probado dejandolos abiertos y haciendo un refresh al volver... Y me pasa lo mismo... La primera vez que hago el open todo va bien pero parece que cualquier operacion que haga a partir de entonces con el DataSet no funciona... Demasiado raro...

la verdad que si. Dijistes que era un Query lo que llamabas??, en ese caso no seria problema del Clientdataset sino directamente del SqlDataSet...

Si es un query, como le pasas el CommandText? ... lo escribes en el codigo, o directamente lo armas con el Query Builder en tiempo de diseño??.. te pregunto esto porque quiza ahi esta el tema....

Si es que usas el TSqlDataSet, quiza te convenga probar usando un TSQLQuery que creo que es para ese fin especifico. Despues al momento de abrir el form ejecutas tu consulta y refrescas tu clientdataset... ahi no puede fallar!!!!:eek::eek::eek:

Angel Vicente 28-04-2008 13:39:32

Hola....

A mi me esta pasando lo mismo con Delphi 6 y TADODataSet para conectar con base de datos Access, la primera apertura me devuelve datos, despues cierro, modifico parametros (si procede), y al volver a abrir, no me devuelve nada. Lo curioso es que tengo otro proyecto muy similar, y este proceso si funciona correctamente; estoy comparandolos para buscar diferencias, pero no veo nada diferente.

Saludos

Angel Vicente 30-04-2008 10:36:47

Hola....

He conseguido que me funcione el TADODataSet, he establecido la propiedad Prepared a true, y ya me funciona.

tefots 30-04-2008 15:34:48

Cita:

Empezado por delphijm (Mensaje 282277)
Hola Santus...

Si, tambien he probado dejandolos abiertos y haciendo un refresh al volver... Y me pasa lo mismo... La primera vez que hago el open todo va bien pero parece que cualquier operacion que haga a partir de entonces con el DataSet no funciona... Demasiado raro...

liberas el formulario en el onclose ?.
a ver si no liberas el formulario y como ya esta creado , la 2º vez no entra en el create y no hace el open.

saludos.


La franja horaria es GMT +2. Ahora son las 03:27:50.

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