FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Concurrencia en ClientDataset
Hola amigos del club delphi tengo dos tablas conectadas maestro detalle en undos clientdataset el problema que tengo es q cuando dos usuarios estan trabajando en red yo tomo el id del documento mendiante una consulta sql preguntando el maximo numero a la base de datos el problema radica en q si otro usuario tambien esta creando otro ducumento el id del primero se pierde y el documento queda grabado en el insert del segundo es decir la llave primaria de uno de los documentos se pierde y todo queda en el ultimo documento que se grave, la llave primaria la consulta mediante la siguiente sentencia en el evento newrecord de la tabla maestro,
En el evento BeforeApplyUpdates como puedo saber si una consulta es de insercion o de actualizacion para volver a realizar la consulta a la base de datos y saber cual es el id mayor. trabajo con firebird 2.0 y delphi 7. Gracias; |
#2
|
||||
|
||||
No lo busques en el evento "BeforeApplyUpdates", búscalo en el evento "BeforeUpdateRecord"
__________________
|
#3
|
||||
|
||||
Gracias contraveneno por tu respuesta pero ahora me surgen varios interrogante como puedo utilizar este evento ya que recibe varias variables y lo que yo necesito es si es un insert averiguar la llave primaria en la base de datos asignarla a la tabla maestra y luego recorrer la tabla detalle y asignarle la llave foranea, como puedo resolver este problema, con esta funcion?
|
#4
|
||||
|
||||
lguien que me pueda ayudar con el uso del evento BeforeApplyUpdates para actualizar las llaves primaria de una tabla maestro y las llaves foranes de una tabla detalle, se lo agradeceria
|
#5
|
||||
|
||||
Si buscas en la ayuda de delphi sobre este evento, explica que con el parámetro "UpdateKind" puedes identificar si es un registro nuevo, una modificación o están borrando un registro:
__________________
|
#6
|
||||
|
||||
Gracias contraveneno
|
#7
|
||||
|
||||
Contraveneno gracias por tus aportes pero ahora como tengo una relacion maestro detalle solo tengo un provider, pero no se como hago para diferenciar cual tabla se inserto si en el maestro o en el detalle, he probado de varias formas pero no he podido dar con el chiste ya q cuando se hace una inserción en el maestro funciona bien pero cuando se hace una insercion en el detalle igual me calcula el mayor, debo diferenciar entre una insercion en el maestro y otra en el detalle, igual mi problema es solo la llave primaria de la tabla maestra q puede cambiar por otro usuario mientras q se esta creando el documento. si me pudieran ayudar se los agradeceria
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Concurrencia | supermilloriver | Conexión con bases de datos | 3 | 20-07-2006 00:10:46 |
Concurrencia | leflaco | PHP | 6 | 06-05-2006 07:55:01 |
Clientdataset y concurrencia | Johnny Q | Conexión con bases de datos | 6 | 25-10-2005 20:35:49 |
Concurrencia | mary123 | C++ Builder | 1 | 31-03-2005 19:58:13 |
Alta concurrencia | SCORDOBA | Firebird e Interbase | 3 | 11-05-2004 16:53:42 |
|