我在后端写了一个比如Procedure test(v_a varchar2, v_b out varchar2),
我在前端执行调用:
var
SQLDataSet1: TSQLDataSet;
sReturn:string;
begin
SQLDataSet1.CommandText:='exec test(''a'',:b)';
SQLDataSet1.Prepared:=True;
SQLDataSet1.ExecSQL;
sReturn:=SQLDataSet1.Params.ParamValues['b'];
end;为什么不行?
应该如何调用? 谢谢!!!
我在前端执行调用:
var
SQLDataSet1: TSQLDataSet;
sReturn:string;
begin
SQLDataSet1.CommandText:='exec test(''a'',:b)';
SQLDataSet1.Prepared:=True;
SQLDataSet1.ExecSQL;
sReturn:=SQLDataSet1.Params.ParamValues['b'];
end;为什么不行?
应该如何调用? 谢谢!!!
如果直接用SQL语句应该指定OUTPUT。
Function GetServerDate:TDate;
var
StoredProc:TAdoStoredProc;
begin
StoredProc:=TAdoStoredProc.Create(nil);
StoredProc.Connection:=sbgl_Dm.Sbgl_conn;
StoredProc.ProcedureName:='GetServerDate';
StoredProc.Parameters.AddParameter;
StoredProc.Parameters[0].Name:='ServerName';
StoredProc.Parameters[0].DataType:=ftDate;
StoredProc.Parameters[0].Direction:=pdOutput;
StoredProc.ExecProc;
result:=StoredProc.Parameters[0].Value;
StoredProc.Free;
end;用sqlstoredpro应该写法应该差不多。