Delphi利用adoquery调用sql server存储过程 标量值函数 表值函数

  {利用adoquery调用sql server存储过程}
procedure TForm1.Label1Click(Sender: TObject);
begin
  adoquery1.Close;
  adoquery1.SQL.Clear ;
  adoquery1.SQL.Add('exec proc_stu :a output,:b,:c');
  adoquery1.Parameters[1].Value :=strtoint(edit1.Text);
  adoquery1.Parameters[2].Value :=strtoint(edit2.Text);
  adoquery1.Parameters[0].DataType:=ftsmallint;
   adoquery1.Parameters[0].Direction:=pdoutput;
   adoquery1.Prepared:=true;
   adoquery1.Open ;
   edit3.Text:= inttostr(adoquery1.Parameters[0].Value );
 end;

{利用adostoreproc调用sqlserver标量值函数}
procedureTForm1.Label2Click(Sender:TObject);
begin

     adostoredproc1.ProcedureName:='rectanglearea';
    adostoredproc1.close;
     adostoredproc1.Parameters.Refresh;//Clear会导致数组溢出异常。
     adostoredproc1.Parameters.CreateParameter('return_value',ftfloat,pdreturnvalue,20,null);//函数返回值
     adostoredproc1.Parameters.CreateParameter('a',ftfloat,pdinput,10,null);
     adostoredproc1.Parameters.CreateParameter('b',ftfloat,pdinput,10,null);
     adostoredproc1.Parameters[1].Value:=strtofloat(edit1.Text);
     adostoredproc1.Parameters[2].Value:=strtofloat(edit2.Text);
     adostoredproc1.Prepared:=true;
    adostoredproc1.ExecProc;
     edit3.Text:=floattostr(adostoredproc1.Parameters[0].Value);

end;

{利用adostoreproc调用sqlserver存储过程}
procedureTForm1.Button1Click(Sender:TObject);
begin
adostoredproc1.ProcedureName:='proc_stu';
adostoredproc1.close;
adostoredproc1.Parameters.Clear;
//adostoredproc1.Parameters.CreateParameter('return_value',ftfloat,pdreturnvalue,20,null);
adostoredproc1.Parameters.CreateParameter('a',ftinteger,pdoutput,10,null);//参数名不需要与sql中定义的参数名相同
adostoredproc1.Parameters.CreateParameter('b',ftinteger,pdinput,10,null);
adostoredproc1.Parameters.CreateParameter('c',ftinteger,pdinput,10,null);
adostoredproc1.Parameters[1].Value:=strtofloat(edit1.Text);
adostoredproc1.Parameters[2].Value:=strtofloat(edit2.Text);
adostoredproc1.Prepared:=true;
adostoredproc1.Open;//有与dbgrid相关联,应用open而不是execproc.
edit3.Text:=floattostr(adostoredproc1.Parameters[0].Value);


end;
{利用adoquery调用sqlserver表值函数}
procedureTForm1.Button2Click(Sender:TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select*fromdbo.tt(:a)');
adoquery1.Parameters[0].Value:=edit1.Text;
adoquery1.Prepared:=true;
adoquery1.Open;
//edit3.Text:=inttostr(adoquery1.Parameters[0].Value);
11end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值