• 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;

  • 相关阅读:
    解决“该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的”的方法
    [附源码]计算机毕业设计基于Springboot作业查重系统
    C++设计模式-策略模式,AI角色动态选择行为
    go语言如何调用其他包中的函数
    python 包之 selenium 自动化使用教程
    使用ASM修改组件化 ARouter
    NDK交叉编译FFmpeg安卓编译ffmpeg
    计算机毕设(附源码)JAVA-SSM基于Java的医疗器械销售系统
    源码分析之上下文构建
    65_Pandas显示设置(小数位数、有效数字、最大行/列数等)
  • 原文地址:https://blog.csdn.net/qqww155/article/details/134437070