FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Insert con ClientDataSet
Hola amigos, tengo un pequeño problema y no se como solucionarlo, tengo el siguiente codigo.
Donde inserto registros, el problema es que al insertar y comprobar el DBGrid asociado me aparece en este, pero al salir de la aplicacion y volve a entrar ya no me aparece, y en la BD no queda grabado ningún registro. Lo mismo me ocurre al modificar datos. ¿Que estoy haciendo mal?.. Saludos |
#2
|
||||
|
||||
Hola, Para grabarlo en la base de datos debes usar:
Eso va luego del post. Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#3
|
|||
|
|||
Tengo puesto en el evento AfterPost del CDS, ApplyUpdates(0), y como te digo me guarda los cambios si lo vuelvo a consultar en el momento, pero al salir y entrar en la aplicación ya no sale. Es como si lo mantuviera en memoria, o yo que se. Voy a probar como me dices, de todas formas.
Saludos. |
#4
|
||||
|
||||
¡Hola!
Cita:
Te sugiero revisar cómo estás manejando las transacciones en tu programa. Saludos. Al González. |
#5
|
|||
|
|||
He estado buscando y tengo entendido que el DataSetProvider en el Servidor de Capa Intermedia, es el encargado de activar las transacciones asociadas al DataSet. A lo mejor me estoy equivocando y tengo que llamarla yo, o confirmarla como me comentas.
Seguire con el tema a ver si doy con ello. |
#6
|
||||
|
||||
¡Hola!
Cita:
Esto fue lo que me llevó a pensar que tal vez tu programa sí está abriendo una transacción antes de la llamada a ApplyUpdates (probablemente es algo que haga de manera predeterminada alguno de los componentes de conexión que estás usando). Aquí el código que ejecuta el proveedor en la capa intermedia (unidad Provider.pas):
Espero te sea de utilidad, no dejes de retroalimentar el hilo. Al González. |
#7
|
|||
|
|||
Gracias por tu interés pero estoy desesperado, he mirado en diez millones de foro, he probado de todas las maneras posible pero nada, en fin voy a probar con SQL Server, a ver si el problema es de los componentes de Firebird, por decir algo.
|
#8
|
|||
|
|||
No se si tendré algo mal declarado en las propiedades del Provider, ClientDataSet o yo que se.
Saludos. |
#9
|
|||
|
|||
Sigo liado con el tema este, no tengo cojones de realizar cambios en la BD.Lo he intentado multitud de formas y nada.
Realizo el ApplyUpdate(0) despues del POST, y me guarda los cambios, ya que al realizar un consulta y mostrarlo en un DBGrid me sale modificado, pero al salir de la aplicación los cambios no se reflejan en la tabla de la BD. ¿Alguien puede ayudarme, please? |
#10
|
||||
|
||||
Hola, debes realizar el commit al FIBConnection para que se grabe en la base de datos.
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#11
|
|||
|
|||
¿que componente es FIBConnection? No lo tengo declarado
|
#12
|
||||
|
||||
perdón, realmente no sé como se llama el componente para conectar a la base de datos, en el caso de ADO sería ADOConnection, el de ZEOS ZConnection, no sé el de FIBPlus entonce asumí que se llamaría así.
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#13
|
|||
|
|||
NO tiene ningun componente tipo connection como el que comentas.
Gracias por tu ayuda |
#14
|
||||
|
||||
Cita:
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#15
|
|||
|
|||
Para conectar con la BD uso el FIBDataBase.
¿Los campos persistentes hay que añadirlos siempre? Saludos. Última edición por Rockin fecha: 15-07-2008 a las 12:08:09. |
#16
|
||||
|
||||
Cita:
para echar para atrás la transacción:
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#17
|
|||
|
|||
Pero en la aplicación cliente no tengo el FIBDataBase, el componente está en el servidor de capa intermedia, con su Transacción correspondiente, la cual teoricamente la inicia y finaliza el DataSetProvider, pero no tengo cojones, y me estoy desesperando mucho.
Seguire buscando, gracias. Saludos. |
#18
|
||||
|
||||
Cita:
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#19
|
|||
|
|||
Esto es lo que uso:
Servidor Capa Intermedia FIBDataBase + FIBDataSet + FIBTransaction + FIBDataSetProvider Aplicación Cliente FIBClientDataSet conectado a su Correspondiente FIBDataSetProvider a través de un SocketConnection. Creo que el que se encarga de iniciar y finalizar la transaccion es el DataSetProvider del servidor de capa intermedia, no en el cliente. Así es como lo tengo montado, las consultas perfectas y muy rapidas, pero la inserción, modificación e eliminación de registros, me lo hace en memoria pero no lo termina de actualizar a la BD, tengo puesto en el evento afterpost del ClientDataSet el ApplyUpdate(0) famoso. Saludos. Última edición por Rockin fecha: 15-07-2008 a las 16:01:06. |
#20
|
||||
|
||||
Efectivamente amigo, es lo que trato decirle, el cliente debe realizar el commit al servidor a traves del socket como dices, solo asi los datos se quedarán grabados en la base.
Ejemplo:
sólo así te va a grabar los datos, tal vez me pueda equivocar , pero estoy seguro que ese es el problema. Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ClientDataSet y XML | gsilvei | Conexión con bases de datos | 0 | 03-10-2007 22:59:18 |
Insert me cierra otro Insert | motrildelphi | Conexión con bases de datos | 0 | 05-05-2005 12:20:27 |
Clientdataset+ | galmacland | Conexión con bases de datos | 3 | 11-11-2004 15:17:37 |
ClientDataSet | narvaez.om | Conexión con bases de datos | 2 | 19-05-2004 18:58:21 |
|