Delphi、MS SQL Server开发环境下存储过程的使用

 我来答
世纪网络17
2022-10-16 · TA获得超过5950个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:143万
展开全部
   一 概述   Delphi + MS SQL Server是目前最为流行的管理信息系统开发环境和工具 Delphi的强大数据库操作控件极大地减轻了开发人员的工作量 在这些控件中 最常用的有TQuery TTable TADOQuery TADOTable TADODataSete等 这些控件执行查询操作时有一个共同的特点 即将所有数据库记录从服务器取回客户端 再根据查询的条件进行筛选 很明显 如果有大量的数据在服务器与客户端之间传递 就会降低程序执行的速度 影响应用程序的性能 针对这种情况 MS SQL Server数据库和Delphi开发工具都提供了存储过程来解决这类问题 存储过程是一段在服务器上执行的程序 它在服务器端对数据库记录进行处理 再把结果返回到客户端 通过使用存储过程 一方面可以利用服务器强大的计算能力和速度 另一方面避免把大量的数据从服务器下载到客户端 减少网络上传输量 服务器只需将计算结果传给客户端 其效率之高是非常明显的

   二 创建存储过程   在MS SQL Server上的存储过程可分为二类 一类是类似于select 查询 用于检索数据 检索到的数据能够以数据集的形式返回给客户端 如CREATE procedure proc @dw char( )asselect dwdm from cchdwdm where dw=@dw  该存储过程有一个输入参数 @dwdm 以数据集的形式返回结果   另一类存储过程是通过输出参数返回信息或不返回信息 或只执行一个动作 如 CREATE procedure proc @m *** allint @m *** allint@result int OUTPUTasselect @result=@m *@m   该存储过程有二个输入参数@m @m 还有一个输出参数@result   按照创建存储过程的时机来划分 创建存储过程也有二种方式 一是利用MS SQL Server的Enterprise Manager中的SQL Server Query Analyzer工具 此方法较简单 只要输入存储过程语句并保存即可   创建存储过程的另一种方式是利用Delphi的控件 如TQuery TADOQuery 通过使用SQL语句在运行时动态地创建存储过程 如下例所示 with query dobeginparamcheck := false;with SQL dobeginclear;add( create procedure proc );add( @dw char( ) );add( as );add( select dwdm from cchdwdm where dw=@dw );endexecsql;end;

   三 存储过程的参数   存储过程一般有四种参数类型   * 输入参数 由客户程序向存储过程传递  * 输出参数 由存储过程向客户传递  * 输入/输出参数 可双向传递  * 状态参数 由存储过程向客户返回错误信息  通过使用Delphi控件TADOStoredProc或TStoredProc来设置或获取存储过程的参数 如 ADOStoredProc parameters parambyname( @name ) value:= 张三 ;

   四 在Delphi中使用存储过程的方法   在Delphi中使用存储过程有以下几个步骤    把TADOStoredProc或TStoredProc放到窗体上    设置参数连接到MS SQL Server数据库    设置ProcedureName参数 指定存储过程名 也可以在程序运行期设置    单击TParameters边上的省略号按钮 如果设置正确 则可看到所有的输入输出参数    在代码中设置存储过程的输入参数 执行存储过程并获取返回的数据   通过调用TADOStoredProc控件的parambyname方法 设置好所有的输入参数 再调用open方法执行存储过程 如果存储过程返回参数 同样用parambyname方法获取参数值 如果返回数据集 则用访问数据集的TFields的方法获取各记录 如以下代码所示

lishixinzhi/Article/program/Delphi/201311/24981

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式