** rutina getidentity
Lparameters cCmd
** devuelve el último identity generado después de grabar con sql pass
through
Local lOK,nPK,nResults,lBatchMode
lOK = sqlexec(thisform.nHandle,cCmd) && envias el comando de
insercion, ej: 'insert into clientes(cuenta,empresa)
values(1234,'JAIMITO SA')
if lOK = .t.
nPK = 0
nResults = 0
cCmd = [select @@IDENTITY as pk ]
lBatchMode = SQLGetProp(thisform.nHandle,"BatchMode" )
SQLSetProp(thisform.nHandle,"BatchMode" ,.f.)
SQLExec(thisform.nHandle,cCmd,'curPK') && recibis el valor del
identity generado en el cursor curPK
Do while nResults <> 2
nResults = SQLMoreResults(thisform.nHandle)
enddo
SQLSetProp(this.nHandle,"BatchMode" ,lBatchMode)
nPK = curPK.pk
Use in Select('curPK')
return nPK
else
SQLRollback(thisform.nHandle)
SQLSetProp(thisform.nHandle,'Transactions',1 ) &&
transacciones automaticas
endif
Rafael Copquin
El 05/12/2012 11:55 a.m., Alejandro Paciotti Iacchelli escribió:
Estimados colisteros:
Desde un procedimiento ejecuto un INSERT en una tabla de SQL SERVER
que tiene un campo ID que se autogenera.
¿Alguien sabe como puedo acceder a ese valor una vez que se haya
realizado correctamente el INSERT?
Gracias de antemano!
--
[email protected] <mailto:[email protected]>