当前位置:编程学习 > Delphi >>

delphi怎么连接SQL的储存过程?

我现在有一个数据库,已经用ADOConnection连接起来。现在我想用查询这个数据库里面的一个储存过程。把结果放在StringGrid里面。这个储存过程有三个变量。怎么利用这三个输入的把参数传进去。要的结果就是要查询这个储存过程的结果,可以通过输入进行筛选。
答案:拖一个adostoredproc的控件adop,然后就调用
  AdoP.Connection := DMDATA.GetConByName(KTCon);
    AdoP.Close;
    AdoP.ProcedureName := '存储过程';
    AdoP.Parameters.Refresh;
    AdoP.Parameters.ParamByName('参数').Value := ‘字段值’;
    AdoP.Open;
最后就是用循环把值赋给stringgrid
for i:=0 to adop.recordcount-1 do
begin
     
end;
其他:使用TADOStoredProc组件
设置
var
  sto:TADOStoredProc;
      sto.ProcedureName   := '存储过程名字'; 
      sto.Prepared:=   true; 
      sto.Parameters.Refresh; 
      sto.Parameters.ParamByName( '参数名 ').Value   :=Value; 
      sto.Prepared   :=true; 
      sto.Open   ; 使用TADOStoredProc组件,可以,给你举个例子好了

 with  ADOStoredProc1 do
     begin
       Close;
       Parameters.Clear;
       ProcedureName:='SaveDate_dbzsm'; //存储过程名称
       Parameters.CreateParameter('v_wlid', ftString, pdInput, 20, fgUnassigned);//传入参数(数字代表长度)
       Parameters.CreateParameter('v_ddid', ftString, pdInput, 20,fgUnassigned);  //传入参数
       Parameters.CreateParameter('v_tm', ftString, pdInput, 500,fgUnassigned); //传入参数
       Parameters.CreateParameter('v_returnstr', ftString, pdoutput, 30,fgUnassigned); //返回值
   //为参数赋值
       Parameters[0].Value :=trim(edit1.text);
       Parameters[1].Value := trim(edit2.text);
       Parameters[2].Value := trim(edit2.text);
      Parameters[3].Value := ' ';
  
        ExecProc;
       reuturn:= Trim(Parameters.ParamByName('v_returnstr').Value);
end;
      reuturn就是返回值,你可以放到stringgrid 里面。

也可以用adoquery 连接存储过程。

 with ADOQuery1 do
     begin
    Close;
    SQL.Clear;
    SQL.Add('exec SaveDate_dbzsm :wlid,:ddid,:tm,:returnstr output');
    Parameters.ParamByName('wlid').Value :=trim(edit1.text);
    Parameters.ParamByName('ddid').Value :=trim(edit2.text);
    Parameters.ParamByName('tm').Value := trim(edit3.text);
      Parameters.ParamByName('returnstr').Value := ' ';
    Open;
    reuturn:= Parameters.ParamByName('returnstr').Value;
  end;

上一个:delphi 中用dbchart怎么做数据统计,网上看了很多帖子,但发现还是不大好理解,请告诉我控件里的操作
下一个:我是个delphi初学者,用的是2010版本,我看tools菜单里没有database desktop工具,请问这个组件在哪找?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,