以文本方式查看主题

-  搭建论坛  (http://bbs.diylsoft.com:8118/starforum/index.asp)
--  数据库交流  (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=6)
----  [学习]名词解释——存储过程  (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&id=8393)

--  作者:admin
--  发布时间:2007-6-18 9:34:52
--  [学习]名词解释——存储过程

简单的说,存储过程是一组预先编译的SQL语句。它类似于其它编程语言中的过程(procedure),并且被创建后是作为数据库的一部分存储起来的,就像存储在数据库中的数据表一样。
存储过程最大的优点是减轻网络的通信负载,以提高执行速度。当通过网络对一个数据库服务器执行大批的SQL语句时,应用程序因一直与服务器保持通信,很快会在网络上形成一个非常重的负载。由于很多用户使用这个网络通信,网络运行和数据库服务器因此会变得越来越慢。而存储过程在执行时,SQL语句在数据库服务器上顺序运行的,只有过程完成后,才将结果返回到客户端的计算机上,因此占用网络通信时间很少。
其次,存储过程中的SQL语句,在创建存储过程时都是被数据库引擎编译的。因此,不用担心SQL语句的语法和书写错误。
虽然存储过程可以用在任何使用SQL语句的地方,但也并不是建议把所有的SQL语句都写成存储过程。存储过程一般应用在以下一些场合:
1.对经常使用的一组SQL语句,或者仅仅是每次调用时的条件不同。此时可以将它们设置成存储过程,通过调用时输入参数来实现。比如对数据的查询、统计等。
2.可以将用户的业务逻辑设计到存储过程中,这样即使是用户的业务逻辑改变时,前台的程序也不必改变。只要修改相关的存储过程即可。所谓业务逻辑就是处理用户业务的特定逻辑,比如用户的报表计算公式就可以看成是一个业务逻辑。
3.对于那些复杂的SQL语句,包括具有复杂的逻辑、需要中间结果的查询统计,具有很多代码等,这些都可以设计成存储过程。
4.受到权限限制的SQL语句。

在《搭建之星》中,通过“ADO存储过程”构件来调用存储过程。它的使用类似于ADO数据表构件。下面,我们还是以“学生库”中新建的存储过程“my_first”为例,说明在搭建之星中如何调用存储过程。
所需构件,如图1所示


此主题相关图片如下:
按此在新窗口浏览图片

属性设置:
ADO数据库连接,连接SQL Server数据库“学生库”。
ADO存储过程,“数据库”属性连接“ADO数据库连接1”。
“过程名称”属性,如同ADO数据表的选择表名称一样,这里选择“存储过程”名称。如图2所示


此主题相关图片如下:
按此在新窗口浏览图片

注意:在每个SQL Server数据库中,系统会自动为某一数据库建立系统存储过程,名字前缀以“dt_”开头,用户新建存储过程为了避免与系统存储过程混淆,起名时应加自己的标记。如本实例新建存储过程名称前缀为“my_”。
“活动”属性设为“真”。
ADO存储过程的属性页设置如图3所示


此主题相关图片如下:
按此在新窗口浏览图片

数据源构件,象连接“数据表”一样,直接与“ADO存储过程”连接。
浏览编辑网格与数据源构件连接。