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)
-   -   Error al modificar datos en maestro detalle con dbexpress (https://www.clubdelphi.com/foros/showthread.php?t=48578)

alopete 28-09-2007 10:42:32

Error al modificar datos en maestro detalle con dbexpress
 
Hola:

Soy nuevo en esto del delpgi y me estan surgiendo una serie de problemillas.

Tengo delhi 2006 conectado a firebird mediante dbexpress.

Tengo un maestro-cliente: el maestro con un TSQLTABLE,TDATASETPROVIDER,TCLIENTDATASET y TDATASOURCE.
Tengo el cliente con los mismos componentes salvo que en vez de TSQLTABLE, tengo un TSQLQUERY , unidos el maestro y el detalle mediante un parametro.
Tengo un grid (TDGRID) asociado al mestro y otro al cliente.

Mi problema surge cuando modifico algun dato de del cliente, me salta un error diciendo que no existe la tabla a la que hace referencia. Tengo puesto el applyupdates en el afertpost del clientedataset del cliente.

¿Alguien sabe pq me pasa eso (si modifico datos del maestro, va bien)?

Muchas gracias

maro 29-09-2007 20:38:19

Hola,

Una pregunta: ¿Puede ser que en el SQLQuery del cliente tengas el nombre de la tabla en minusculas?

Gracias.
Un Saludo.

alopete 01-10-2007 08:29:37

Hola:

Efectivamente, estaba en minusculas. Lo he puesto en mayusculas y funciona. Pero si se pongo apllyupdates tambien al maestro, al modificar datos del cliente, da "Stack Overflow". ¿ si tengo un maestro detalle, a que clientdataset hay que ponerle el applyupdates, al maestro al detalle o a ambos?

Muchas gracias por responder.

maro 01-10-2007 10:32:43

Hola,

Ciertamente, tendrás que realizar un applyUpdates cada vez que quieras que las modificaciones se propaguen a la base de datos, es decir, por cada ClientDataset que estés usando.

El error que comentas no tiene nada que ver con el ApplyUpdates en si. Probablemente, tengas algún procedimiento, que se ejecuta al hacer el applyUpdates, y está provocando el desbordamiento de la pila.
Es muy posible que este desbordamiento lo esté provocando la ejecución de un bucle infinito, sin fin, que se repite hasta desbordar la pila de procesos.

Espero que te ayude.
Un Saludo.

JosepGA 01-10-2007 10:33:45

hola, supongo que realizaras la consulta del tipo dos tSQLQuery conectados mediante un tDataSource, el maestro del tSQLQuery a un Tdatasetprovider, un tClientDataSet al Provider, y otro tClientDataSet ( el detalle ), a un campo tDataSetField del tClientDataSet maestro, si es así, debes realizar el ApplyUpdates en el tClientDataSet maestro.

un saludo

alopete 01-10-2007 12:00:32

Hola de nuevo:

He tenido que poner en los dos. Como bien deciais, el error de stack era debido a otro motivo.

Muchas gracias


La franja horaria es GMT +2. Ahora son las 22:16:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi