delphi动态调用oracle存储过程

{=================================================================
功 能: 登录信息检测
参 数: pUserInfo: 用户信息记录;ErrorMessage:返回信息;Flag:0为登录,1为退出
返回值: -1:存储过程执行错;0:成功;1:账户名错;2:密码错;3:同一账户同时登录
备 注:
版 本: 1.0 2011/06/09 21:05:00
=================================================================}
function Fun_LoginCheck(var pUserInfo:TREMPLOYEE ;var ErrorMessage:string;Flag:string): Integer;
var
  ADOStoredProcTemp:TADOStoredProc;
begin
  ADOStoredProcTemp := TADOStoredProc.Create(nil);
  try
    with ADOStoredProcTemp,ADOStoredProcTemp.Parameters,pUserInfo do
    begin
      Connection:=DataModuleMain.ADOCon;
      //ConnectionString:=gConStr;
      ProcedureName:='SP_LOGIN';
      //Parameters.Command.CommandType:= cmdStoredProc;
      Refresh;
      ParamByName('pDM').Value :=DM;
      ParamByName('pMM').Value :=Fun_Crypt(MM);
      ParamByName('pDLIP').Value :=DLIP;
      ParamByName('pFLAG').Value :=FLAG;
      ExecProc;
      ErrorMessage:=ParamByName('Perrmessage').Value;
      Result:=ParamByName('Perrcode').Value;
      if (Result = 0) and (Flag = '0') then
      begin
      MC:=ParamByName('pMC').Value;
      CDQX:=ParamByName('pCDQX').Value;
      KSQX:=ParamByName('pKSQX').Value;
      KSDM:=ParamByName('pKSDM').Value;
      KSMC:=ParamByName('pKSMC').Value;
      TSQX:=ParamByName('pTSQX').Value;
      GLYBZ:=ParamByName('pGLYBZ').Value;
      CYSLF:=ParamByName('pCYSLF').Value;
      end;
    end;
  finally
    ADOStoredProcTemp.Free;
  end;
end;

    //说明:1.Refresh;一定要,否则得不到参数列表;

     2.过程里除了out型参数,都得给值,否则报错;

     3.如果out参数没返回值但用了变量去接收,也会报错;

     4.连接用Connection比ConnectionString快很多;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值