我在后端写了一个比如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;为什么不行?
应该如何调用? 谢谢!!!

解决方案 »

  1.   

    Oracle不熟悉,但在SQL Server里是不能这么调用的,感觉应该差不多。
    如果直接用SQL语句应该指定OUTPUT。
      

  2.   

    ////////////////////////////获取服务器日期
    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应该写法应该差不多。
      

  3.   

    SQl server里没问题,我以前都用过,可是oracle就是有问题