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;

相关推荐
有想法的py工程师2 分钟前
PostgreSQL 查询库中所有表占用磁盘大小、表大小
数据库·postgresql
R_AirMan1 小时前
深入浅出Redis:一文掌握Redis底层数据结构与实现原理
java·数据结构·数据库·redis
Hello.Reader2 小时前
RedisJSON 内存占用剖析与调优
数据库·redis·缓存
wkj0012 小时前
php 如何通过mysqli操作数据库?
android·数据库·php
九皇叔叔4 小时前
【9】PostgreSQL 之 vacuum 死元组清理
数据库·postgresql
风雅的远行者5 小时前
mysql互为主从失效,重新同步
数据库·mysql
宇钶宇夕6 小时前
S7-1200 系列 PLC 中 SCL 语言的 PEEK 和 POKE 指令使用详解
运维·服务器·数据库·程序人生·自动化
绿蚁新亭6 小时前
Spring的事务控制——学习历程
数据库·学习·spring
scilwb7 小时前
占用栅格地图数据集
数据库
时序数据说8 小时前
时序数据库的存储之道:从数据特性看技术要点
大数据·数据库·物联网·开源·时序数据库·iotdb