Gracias Rafael y a todos.

Pongo acá como le encontré la vuelta gracias a los datos aportados para que
quede en el historial.

El SP en SQLSERVER quedó así:

*ALTER PROCEDURE [dbo].[Prueba2] *
*AS*
*BEGIN*
* -- SET NOCOUNT ON added to prevent extra result sets from*
* -- interfering with SELECT statements.*
* SET NOCOUNT ON;*
*
*
*    -- Insert statements for procedure here*
* INSERT INTO Prueba (Descripcion) VALUES ('Prueba')*
* RETURN @@IDENTITY*
*END*

Y la llamada desde FOX quedó asi:

*TEXT TO cInstruccionSQL TEXTMERGE NOSHOW PRETEXT 2*
* DECLARE @RC int*
*
*
* -- TODO: Set parameter values here.*
*
*
* EXECUTE @RC = [SACC].[dbo].[Prueba2] *
* SELECT @RC*
*ENDTEXT*
***
*nResultado = SQLEXEC(oAplicacion.Conexion, cInstruccionSQL, 'R')*
***
*IF nResultado < 0*
*   MESSAGEBOX(MESSAGE())*
*ELSE*
*   MESSAGEBOX("El campo IDENTITY grabado es: " +
TRANSFORM(R.CampoIdentidad))*
*ENDIF   *

Gracias a Todos!


El 5 de diciembre de 2012 13:58, Rafael Copquin
<[email protected]>escribió:

>  ** 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]
>
>
>


-- 
[email protected]

Responder a