Возврат значения из Stored Procedure
Работаю через ADO с SQL Server.
На нем имеется такая sp:
CREATE PROCEDURE dbo.GetContractIDForEstCont
@EstContID int,
@ContractID int OUTPUT
AS
SET NOCOUNT ON
SELECT @ContractID = ContractID FROM Estimate
WHERE [ID] =
(SELECT TOP 1 EstimateID FROM EstimateContent WHERE [ID] = @EstContID)
SET NOCOUNT OFF
GO
Пускаем ее в QA:
DECLARE @ContractID int
EXEC GetContractIdForEstCont 43, @ContractID OUTPUT
SELECT @ContractID
Получаем, что @ContractID = 2
Пускаем из Builder так:
TADOStoredProc *Proc = new TADOStoredProc(this);
Proc->Connection = DM->ADOConnection;
Proc->ProcedureName = "GetContractIdForEstCont";
Proc->Parameters->Clear();
try {
Proc->Parameters->CreateParameter("", ftInteger, pdInput, sizeof(int), 43);
Proc->Parameters->CreateParameter("", ftInteger, pdOutput, sizeof(int), ContractID);
Proc->Prepared = true;
Proc->ExecProc();
}
__finally {
delete Proc;
}
ContractID не получает значение из проци.
В чем прикол?
Ты ее попробуй передать как &ContractID
Цитата:
Originally posted by SEDEGOFF
Ты ее попробуй передать как &ContractID
Ты ее попробуй передать как &ContractID
Нет, не помогло...
Но вот такая тема работает:
ContractID = Proc->Parameters->Items[1]->Value;