oConn = CREATEOBJECT([AdoDB.Connection]) oRS = CREATEOBJECT([AdoDB.recordSet]) oCmd = CREATEOBJECT([AdoDB.Command]) *-- Parâmetro OUTPUT da SP = lnId *-- Valor de OutPut para oPrm1.Direction = 2 *-- Parâmetro INPUT da SP = tcCampo *-- Valor de Input para oPrm2.Direction = 1 lcConnString = [Provider = VFPOleDB.1; Data Source = d:\TESTE\MEUBD.DBC] oConn.CursorLocation = 2 && adUseServer oCOnn.Mode = 16 && adModeShareDenyNone oConn.Open(lcConnString) oCmd.CommandType = 4 && Stored Procedure oCmd.CommandText = [_st_GeraId] && Nome da Procedure oPrm1 = oCmd.CreateParameter() oPrm1.Name = [lnId] oPrm1.Type = 3 && adInteger oPrm1.Direction = 2 oPrm1.Size = 4 && bytes oPrm1.Value = 0 && inicializei o valor de retorno. oCmd.Parameters.Append(oPrm1) oCmd.CreateParameter() oPrm2 = oCmd.CreateParameter() oPrm2.Name = [tcCampo] oPrm2.Type = 200 && adVarChar oPrm2.Direction = 1 && input Parameter oPrm2.Size = 25 && Um campo pode ter no máximo 25 caracteres, neste caso específico oPrm2.Value = [MinhaPK] oCmd.Parameters.Append(oPrm2) && Anexando outro parâmetro ao objeto oCmd oCmd.Execute() && Para executar o ComandoThis Code returns me: