有一段存储过程我如何使用ADO控件调用它的输出值和输入它的输入值CREATE PROC P_NextBH
@Name char(3),
@BH nvarchar(20) OUTPUT
AS
BEGIN TRAN
if @Name='YJD'
begin
Update DHsystem WITH(ROWLOCK) SET @BH=YJD+1, YJD=YJD+1
end if @Name='CYD'
begin
Update DHsystem WITH(ROWLOCK) SET @BH=CYD+1, CYD=CYD+1
endCOMMIT TRAN
GO
@Name char(3),
@BH nvarchar(20) OUTPUT
AS
BEGIN TRAN
if @Name='YJD'
begin
Update DHsystem WITH(ROWLOCK) SET @BH=YJD+1, YJD=YJD+1
end if @Name='CYD'
begin
Update DHsystem WITH(ROWLOCK) SET @BH=CYD+1, CYD=CYD+1
endCOMMIT TRAN
GO
with Self.ADOStoredProc1 do begin
ProcedureName := 'P_NextBH';
Parameters.CreateParameter('@Name,ftString, pdInput, 3, 'chn');
Parameters.CreateParameter('@BH'',ftString, pdOutput, 20, '');
ExecProc; ShowMessage( Parameters.ParamByName('@BH').Value );
end;
delphi的示例如下:var
P1, P2: TParam;
begin
...
with StoredProc1 do begin
StoredProcName := 'GET_EMP_PROJ';
Params.Clear;
P1 := TParam.Create(Params, ptInput);
P2 := TParam.Create(Params, ptOutput);
try
Params[0].Name := 'EMP_NO';
Params[1].Name := 'PROJ_ID';
ParamByname('EMP_NO').AsSmallInt := 52;
ExecProc;
Edit1.Text := ParamByname('PROJ_ID').AsString;
finally
P1.Free; P2.Free;
end;
end;
...
end;