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,
Código SQL
[-]
Buscar.Close;
Buscar.SqL.Clear;
Buscar.SqL.Add('SELECT MAX(ID) AS ID FROM DOCUMENTO);
Buscar.Open;
if Buscar['ID'] = NULL then
CDSDocumento['IDDOC'] := 1
ELSE
CDSDocumento['IDDOC'] := Buscar['ID'] + 1;
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;