Ver Mensaje Individual
  #1  
Antiguo 14-12-2016
raul_toled raul_toled is offline
Registrado
 
Registrado: ene 2007
Posts: 9
Reputación: 0
raul_toled Va por buen camino
Exclamation Problema con ApplyUpdate ClientDataSet y Autonumérico

Buenas.... necesito solventar este enigma. Tengo una conexión DBExpress con los siguientes componentes

TSQLConnection: Conexión con SQL Server
TSQLQuery: con la consulta a una tabla Maestra con una columna AUTOINCREMENTABLE
TDataSetProvider: Asociado al TSQLQuery
TClientDataSet: Asociado al TDataSetProvider
TDataSet: Asociado al TClientDataSet (para conectar componentes y grid)

El problema es el siguiente, tengo una tabla Maestra con el AUTOINCREMENTABLE y una tabla Hija que tiene una ForeingKey de la Maestra

Cuando realizo el insert de la Maestra hago lo siguiente

1.- Abro una Transacción
2.- ClientDataSet1.CheckBrowseMode
3.- ClientDataSet1.ApplyUpdates(0)
4.- Intento recuperar el valor de Identidad insertado (con el select scope_identity()) Aquí tengo el problema
5.- Después tengo que insertar en la tabla detalle (utilizando el id obtenido de la tabla anterior)
6.- Commit o Rollback de la transacción

Necesito rescatar el ID de dicha tabla (autonumerico) para después realizar varios insert en la tabla detalle.

Después del ApplyUpdates hago una consulta directa al SQL Server "SELECT SCOPE_IDENTITY()" para obtener el ultimo valor de identidad insertado pero me devuelve NULL

¿Cómo podría recuperar ese valor del autonumérico recién insertado?

He probado ha hacerlo en el AfterUpdateRecord, AfterApplyUpdate del DataSetProvider, del ClientDataSet..... y nada... no doy con la tecla

¿Alguna idea de como hacerlo y obtener ese valor autonumérico?

Gracias
Responder Con Cita