让VB实现SQLServer2000存储过程调用

文章作者 100test 发表时间 2007:09:08 13:10:19
来源 100Test.Com百考试题网


存储过程

  存储过程是存储在服务器上的一组预编译的Transact-SQL语句,是一种封装重复任务操作的方法,支持用户提供的变量,具有强大的编程功能。它类似于DOS系统中的BAT文件。在BAT文件中,可以包含一组经常执行的命令,这组命令通过BAT文件的执行而被执行。同样的道理,可以把要完成某项任务的许多Transact-SQL语句写在一起,组织成存储过程的形式,通过执行该存储过程就可以完成这项任务。存储过程与BAT文件又有差别,即存储过程已经进行了预编译。

1、创建存储过程的方法:

  在Transact-SQL语言中,创建存储过程可以使用CREATE PROCEDURE语句,其语法形式如下:

  CREATE PROC[EDURE] procedure_name[.number]
  [{@parameter data_type}[VARYING][=default][OUTPUT]
  ]],…n]
  [WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
  FOR REPLICATION]
  AS sql_statement[…n]

  在上面的CREATE PROCEDURE语句中,方括号"[ ]"中的内容是可选的,花括号"{}"中的内容是必须出现的,不能省略,[,…n]表示前面的参数样式,可以重复出现。竖线"|"表示两边的选项可以任选一个。

下面分析该语句中各种选项的含义。

  CREATE PROCEDURE是关键字,也可以写成CREATE PROC。

  procedure_name是该存储过程的名称,名称可以是任何符合命名规则的标示符。名称后的[;number]参数表示可以定义一系列的存储过程名称,这些存储过程的数量由number指定。

  参数名称可以使用@parameter data_type来指定。在Transact-SQL语言中,用户定义的参数名称前面加“@”符号,这些数据类型是Transact-SQL语言允许的各种数据类型,包括系统提供的数据类型和用户定义的数据类型。

  当参数类型为cursor时,必须使用关键字VARYING和OUTPUT。VARYING表示结果集可以是一个输出参数,其内容是动态的。该关键字只能在使用游标作为数据类型时使用。关键字OUTPUT表示这是一个输出参数,可以把存储过程执行的结果信息返回应用程序。

  default用于指定参数的默认值。

  选项表示重新编译该存储过程。该选项只是在需要的时候才使用,例如经常需要改变数据库模式时。

  ENCRYPTION选项用来加密创建存储过程的文本,防止他人查看。

  选项FOR REPLICATION主要用于复制过程中。注意,该选项不能和选项RECOMPILE同时使用。

  AS是一个关键字,表示其后的内容是存储过程的语句。参数sql-statement[…n]表示在一个存储过程中可以包含多个Transact-SQL语句。

2、存储过程的优点:

  在频繁访问数据库的系统中,开发者都乐于使用存储过程,这与存储过程的下列优点是分不开的。

  ⑴ 存储过程可以与其他应用程序共享应用程序的逻辑,从而确保一致的数据访问和操纵。

  ⑵ 存储过程提供了一种安全机制。如果用户被授予执行存储过程权限,那么即使该用户没有访问在执行该存储过程中所参考的表或视图的权限,该用户也可以完全执行该存储过程而不受到影响。因此,可以创建存储过程来完成所有的增加、删除等操作,并且可以通过编程控制上述操作中对信息的访问权限。

  ⑶存储过程执行速度快,便于提高系统的性能。由于存储过程在第一次执行之后,其执行规划就驻存在过程高速缓冲存储区中,在以后的操作中,只需从过程高速缓冲存储区中调用编译好的二进制形式存储过程来执行。

  ⑷ 使用存储过程可以减少网络传输时间。如果有一千条Transact-SQL语句的命令,一条一条地通过网络在客户机和服务器之间传送,那么这种传输所耗费的时间将很长。但是,如果把这一千条Transact-SQL语句的命令写成一条较为复杂的存储过程命令,这时在客户机和服务器之间网络传输所需的时间就会大大减少。

SQL Server 2000数据库存储过程的调用

  VB作为当今应用极为普遍的数据库客户端开发工具之一,对客户端应用程序调用服务器端存储过程提供了强大的支持。特别是随着VB6.0的推出,VB客户端应用程序可以方便地利用ADO的对象和集合来实现对数据库存储过程的调用。

  在笔者编写的科技档案管理系统中,就是采用VB作为开发平台,采用SQL Server2000数据库管理数据,在这个科技档案管理系统中有海量的数据,并且对数据库有频繁的访问,利用存储过程访问数据库节省了执行时间,大大提高了系统的性能。



相关文章


使用SQLServer2000日志转移实现高可用性
SQLServer2005深层工具和运行时间集
SQLServer应用技巧:内部连接和外部连接中NULLS的影响
SQLServer2005分析服务统一整合视图
让VB实现SQLServer2000存储过程调用
利用OBJECT_DEFINITION函数来代码存档
实例解析:InteractiveSQL中的主窗口
SQLServer数据库搭建农村信息化的方案
使用脚本加速DB2存储过程开发
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛