ADOQUERY,CLIENTDATASET,ADOSTOREPROC执行存储过程【多种方法】
来源:互联网 发布:win10怎么重置网络配置 编辑:程序博客网 时间:2024/06/06 18:20
本文用实例的方式演示了如何分别使用ADOQUERY,CLIENTDATASET,ADOSTOREPROC执行MS-SQL Server中存储过程,既可以返回记录集(表)数据,又可以返回参数信息,供读者参考。
MS-SQL Server中的存储过程:
CREATE PROCEDURE [dbo].[up_TestAdoExec] @inVar varchar(100), @outVar varchar(100) outputASBEGIN select * from 操作日志表 set @outVar='传入的参数值为:'+@inVarEND
AdoQuery调用方法:
procedure TMain.btn_AdoqueryExecClick(Sender: TObject);begin DataSource1.DataSet := ADOQuery1; ADOQuery1.Close; ADOQuery1.SQL.Text := 'Execute up_TestAdoExec :@inVar,:@outVar output'; ADOQuery1.Parameters.Clear; //调用存储过程时,必须把此语句放在对SQL.Text的赋值操作之后,否则会发生如果多次执行存储过程时则会出错的结果 ADOQuery1.Parameters.CreateParameter('@inVar',ftString,pdInput,100,''); ADOQuery1.Parameters.CreateParameter('@outVar',ftString,pdOutput,100,''); ADOQuery1.Parameters.ParamByName('@inVar').Value := Edit1.Text; //ADOQuery1.Parameters.ParamByName('@outVar').Value := Edit2.Text; //单向输出参数,赋值没有意义。 ADOQuery1.Open; Edit2.Text := ADOQuery1.Parameters.ParamByName('@outVar').Value;end;
ClientDataSet调用方法(实际上就是三层中的远端执行):
procedure TMain.btn_ClientDataSetExecClick(Sender: TObject);begin DataSource1.DataSet := ClientDataSet1; ClientDataSet1.ProviderName := 'DataSetProvider1'; DataSetProvider1.DataSet.Close; //即执行了 Adoquery1.Close; ClientDataSet1.Close; ClientDataSet1.CommandText := 'Execute up_TestAdoExec :@inVar,:@outVar output'; ClientDataSet1.Params.Clear; //调用存储过程时,必须把此语句放在对CommandText的赋值操作之后 ClientDataSet1.Params.CreateParam(ftString,'@inVar',ptInput); ClientDataSet1.Params.CreateParam(ftString,'@outVar',ptOutput); ClientDataSet1.Params.ParamByName('@inVar').Size := 100; ClientDataSet1.Params.ParamByName('@inVar').Value := Edit1.Text; ClientDataSet1.Params.ParamByName('@outVar').Size := 100; //ClientDataSet1.Params.ParamByName('@outVar').Value := Edit2.Text; //ClientDataSet1.Execute;//如果不返回结果集,执行此语句 ClientDataSet1.Open; Edit2.Text := ClientDataSet1.Params.ParamByName('@outVar').Value;end;
AdoDataSetStoreProc调用方法:
procedure TMain.btn_AdoStoreProcExecClick(Sender: TObject);begin DataSource1.DataSet := ADOStoredProc1; ADOStoredProc1.Close; ADOStoredProc1.ProcedureName := 'up_TestAdoExec'; ADOStoredProc1.Parameters.Clear; ADOStoredProc1.Parameters.CreateParameter('@inVar',ftString,pdInput,100,''); ADOStoredProc1.Parameters.CreateParameter('@outVar',ftString,pdOutput,100,''); ADOStoredProc1.Parameters.ParamByName('@inVar').Value := Edit1.Text; //ADOStoredProc1.Parameters.ParamByName('@outVar').Value := Edit2.Text; ADOStoredProc1.Open; Edit2.Text := ADOStoredProc1.Parameters.ParamByName('@outVar').Value;end;
演示程序:
- ADOQUERY,CLIENTDATASET,ADOSTOREPROC执行存储过程【多种方法】
- 执行存储过程的多种写法
- 通过ADOQuery调用SQLServer的存储过程
- Delphi使用AdoQuery调用Mysql存储过程
- 通过ADOQuery调用SQLServer的存储过程
- 通过ADOQuery调用SQLServer的存储过程
- 执行存储过程的方法
- 执行存储过程通用方法
- prepareCall方法执行存储过程
- prepareCall()方法执行存储过程
- prepareCall方法执行存储过程
- 多种存储过程分页方法的速度对比
- 多种存储过程分页方法的速度对比
- 多种存储过程分页方法的速度对比
- [MSSQL]sql 存储过程定时执行方法
- sybase执行存储过程的方法
- Hibernate中执行存储过程的方法
- 利用exec方法执行存储过程示例
- iOS学习--列表下拉/上拉刷新: (一)EGORefreshTableHeaderView使用、定义EGORefreshTableFooterView
- DCMTK开源库的学习笔记3:dcmtk文件中数据元的修改
- SOW
- C++ 实现单链表
- Linux 下的解压缩命令
- ADOQUERY,CLIENTDATASET,ADOSTOREPROC执行存储过程【多种方法】
- 网站的简略设计
- Java多线程技术初识——9,等待唤醒机制(二)
- 使用Ajax提高用户体验
- 黑马程序员_java中的异常1
- MY FIRST BLOG
- 图像处理算法系列 第六章 图像形态变化 膨胀 腐蚀 开运算 闭运算
- 通过URL传参数到后台出现乱码问题
- 网络字节序和主机存储方式转换