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;

相关推荐
The_Ticker35 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
Elastic 中国社区官方博客41 分钟前
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
企鹅侠客1 小时前
ETCD调优
数据库·etcd
Json_181790144801 小时前
电商拍立淘按图搜索API接口系列,文档说明参考
前端·数据库
煎饼小狗1 小时前
Redis五大基本类型——Zset有序集合命令详解(命令用法详解+思维导图详解)
数据库·redis·缓存
永乐春秋1 小时前
WEB-通用漏洞&SQL注入&CTF&二次&堆叠&DNS带外
数据库·sql
打鱼又晒网2 小时前
【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析
数据库·mysql
大白要努力!2 小时前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
tatasix3 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
南城花随雪。3 小时前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库