Instanciar datamodule
1 Archivos Adjunto(s)
Hola a todos.
Miren tengo esta unidad donde intento instanciar un datamodule que contiene un Ttable + Provider + Cliendataset todo parece ir bien hasta que intento modificar los datos de cliente, es como si no lo instanciara pero desde el form si veo todos los componentes del datamodule. En la parte de abajo del código resalto donde da error. Sabéis que puede ocurrir? Gracias , un saludo para todos.
|
¿No estará activo?
|
Gracias Casimiro por tu ayuda.
Pues si que lo está,además hace cosas muy raras , sales y entras en la aplicación y lo datos están actualizados.:mad: |
Echa un vistazo a estos enlaces.
|
Bueno ya miré con anterioridad la mitad de ellos y casi todos coinciden en que está cerrado el dataset pero aqui no es el caso.
Al final solo instanciaré de las form y el datamodule lo creare al inicio que ya probé y no da problemas. El objetivo era no cargar mucho la red. Gracias Casimiro nuevamente. |
Siempre puedes preguntar (con un IF) por el estado del Dataset, antes de realizar el Edit.
|
Gracias por contestar.
Si, ya lo hice también y está abierto. No será que clientdataset no se lleva bien con instanciar los datamodules? Si creo el datamodule al inicio no hay problemas. Gracias . |
Cita:
Es raro, porque yo instancio Datamodules y los creo en ejecución sin problemas. No será algo relacionado con el código que estás utilizando; Otro datamodule relacionado, algún evento que está saltando sobre otro objeto,... |
Hola Germán.
El código ya lo ves arriba donde creo el datamodule. Una vez creado veo sin problemastodo lo que contiene pero a la hora de actualizar se queja dice que no está abierto los datos. No sé, un expediente X. Gracias un saludo. |
¿Y el código del datamodule? ¿Donde realizas la conexión? Es que con lo que muestras es apenas normal que los datasets estén inactivos.
|
Buenas.
A ver , Añado un datamodule a proyecto , suelto todos los componentes conexión , dataset, datasource a ect ect , todo conectado ok , pero no lo lo creo con la ejecución del programa , solo lo instancio en el Form que me hace falta . También he probado Conectarlo todo en ejecución y sigue igual. He de decir que todo Funciona si creo el datamodule con el único del Programa. Gracias por interesaros . |
Buenas.
A ver, no está de más que valides si está conectado y activo y si no, pues haces lo propio. (Es decir: Lo conectas y lo abres... lo escribo por si no se entiende que quise decir con "lo propio") |
Reholas...:p
Gracias por tu atención. Pues eso, que no esta de mas , no, ya lo hago y no funciona.:) |
Estamos a ciegas. tocarías que compartas el código.
|
Estaría bien ver el código, ya que resulta muy extraño.
|
Bueno bueno.:(
Quiero daros las gracias y a su vez pediros perdón por la insistencia ,pero efectivamente no abría el dataset correctamente y claro,si no está abierto mal asunto, perdón.:D La cuestión ahora es la siguente tengo un form general donde tengo el grid con los datos del dataset y un botón que llama a otro form donde añado o editar dependiendo del usuario. El este último form es donde creo el hago el create del datamodule y añado o modificó los registros y surge la duda.:cool: Cuando salgo de ese fin en realidad si se modificaron los datos pero no los veo actualizados hasta que no llamo al método refresh del dataset,¿ Hay alguna manera del poder ver los datos actualizados sin necesidad de llamar a citado método cada vez que los modifico ? Yo hago así en la salida del form Bueno; por último pediros perdón por la paciencia que tenéis conmigo. Gracias a todos. |
Todos los que estamos pendientes de esta novela, queremos ver si en algún lugar aparece la linea que resalto en rojo:
|
El error original apunta a eso: "Cannot perform this operation o a closed dataset"... litermalmente dice: "no se puede hacer esta operación en un dataset cerrado"... No puedes insertar, actualizar o eliminar en un dataset que está cerrado.
El clientDataset se abre con un open, o en el momento que asignas un valor a XMLData o sise crea como un dataset en memoria en tiempo de diseño con "Create Dataset"... pero al parecer ninguna de estas aciones se está llevando a cabo... saludo, |
Cita:
|
A la... se acabo la novela.;););)
GatoSoft; eso + actualizaba los datos donde no debía, si no fuera por vosotros...... Gracias. |
Cita:
|
Buenas.
He de decir que que tuve que ajustar en el campo clave persistentes del Query ID a pfinkey y en Updatemode del provider ajustado a upWhwrekeyOnly para que guardara los datos editados ciertamente. Un saludo a todos.:) |
Por cierto.
A la hora del editar y grabar el clientdataset aparecía "unabled todo find record". Lo pude solucionar cambiando del proveedor propiedad Updatemode a upWhwrekeyOnly. Y también en el campo persistente con clave ID del dataset a cambie a pfinkey. Por si al álgido le pasa también Un saludo a todos . |
Por último decir que a la hora grabar los datos editados el cliente arrojaba " unabled to find record" , lo pude solucionar con ProviderFlags para el campo clave id Persistente del dataset indicando pfInKey :=True, por si alguien le pasa.^\||/
Saludos. |
La franja horaria es GMT +2. Ahora son las 14:13:31. |
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