在DELPHI中执行SQL2000自带的一个存储过程(sp_pkeys),请问用storedproc怎么么去执行这个存储过程,并要返回其中CLOUMN_NAME的值。

解决方案 »

  1.   


    当然先得指定DatadaseName(和TQuery一样),
    然后指定StoredProcName为你想使用的
    存储过程名,例如为sp_pkeys(传入usr_id,返回name),
    此后你就可以在Param属性中见到各参数名和存放
    返回值的变量名.和你使用TQuery时的Param中的东东
    差不多,只是多了output,传入值后.
    现在就用ExecProc注意:STOREDPROCNAME 后边的“;1”去掉例子:
    执行用:execproc
    名称要大写
    定义  spKeyInfo: TStoredProc;
    运行  with spKeyInfo do
            begin
              ParamByName('P_BUILD').AsString:=inttostr((rbuf[j+4]-48)*10+(rbuf[j+5]-48));
              ParamByName('P_KEYCODE').AsString:=inttostr((rbuf[j+6]-48)*10+(rbuf[j+7]-48));
              ParamByName('P_HAPPENTIME').AsString:=FormatDateTime('yyyy.mm.dd hh:nn:ss',now);
              execproc;
              GetStr:=ParamByName('RESULT').AsString;
              // 。。
            end
      

  2.   

    ADOStoredProc1.ProcedureName  := 'sp_pkeys';
    ADOStoredProc1.ExecProc;如查有参数,就设置一个Parameters属性,传入用pdInput,用于接收返回值用pdOutput 。
      

  3.   

    ADOStoredProc1.ProcedureName  := 'sp_pkeys';
    ADOStoredProc1.ExecProc;