delphi ADOQuery 如何调用oracle带参数存储过程存储过程
PROCEDURE sp_login
(
  vuserid       IN VARCHAR2,  --工号
  vpassword     IN VARCHAR2,--密码
  retv          OUT INTEGER    --登陆序号 ,-1失败

执行后回传retv这个参数?
ADOQuery 如何调用oracle带参数存储过程呢?

解决方案 »

  1.   

    to SQLDebug_Fan
    用TADOCommand如何调用,能否给个简单的例子,谢谢
      

  2.   

    用TADOCommand如何调用,能否给个简单的例子,谢谢
      

  3.   

    http://topic.csdn.net/u/20090423/01/f09753e0-8182-494f-ab10-824a40484dee.html
      

  4.   

    对于存储过程的调用使用的控件TADOStoredProc。
    创建方法和连接都很简单。
    StorPro:=TADOStoredProc.Create(nil);
    然后定义存储过程的名字和输入参数:
    StorPro.ProcedureName:=ProName;
    StorPro.Parameters.clear;
    StorPro.Close;
    StorPro.Parameters.CreateParameter('as_gh', ftString, pdInput , 10, NULL);
    StorPro.Parameters.CreateParameter('as_in', ftString, pdInput , 100, NULL);
    StorPro.Parameters.CreateParameter('as_out', ftString, pdOutput , 255, NULL);
    大家可能看到函数CreateParameter中的第3个参数,pdInput 就是用来定义此参数是输入参数函数输出参数。具体的参数函数是:存储过程参数名称、类型、输入输出参数类型、长度还有就是最后一个参数Delphi帮助中说是Value: OleVariant,不过我没有用过。一般我赋值为NULL。
    上面的过程是定义这个存储过程的参数。在调用的时候自然需要给参数赋值。
    赋值过程为(其中WorkID和DataID是事先定义好的两个变量):
    StorPro.Parameters[0].value :=WorkID;
    StorPro.Parameters[1].value :=DataID;
    赋值完成后运行此存储过程:
    StorPro.prepared:=true;
    StorPro.ExecProc;
    好了存储过程调用以后,我们希望得到这次存储过程返回的参数'as_out'的值。
    fxh7622:=StorPro.Parameters.parambyname('as_out').Value;
    这个时候存储过程返回的值就保存在了fxh7622里面。
    其实获得存储过程的返回值比较简单,希望对大家有帮助。