快速业务通道

在 Access 中使用“存储过程”

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-19

    我们已经熟悉在 ASP 中通过调用 sql server 存储过程来执行数据库操作,不过大家是否知道,在桌面级数据库 Access 中,我们也能够创建并使用“存储过程”?
Access + ASP 是开发轻量级 Web 应用程序的绝佳组合:简单,快速,兼容性好,但是性能通常不高。并且,用 ADODB.Connection 和 Recordset 对象来执行 SQL 语句的方式,也有一些不方便,因为带参数的 SQL 语句的参数值也常常是拼接到字符串中,于是便有了诸如“单引号问题”这样的麻烦。使用存储过程的一个好处就是,支持 SQL 语句参数值的另外提供。

  事实上,Access(2000 及以上版本)中所谓“存储过程”,和 SQL Server 中的 Stored Procedure 是不能比的。它只能算是“Stored Procedure Lite”,不支持多条 SQL 语句,不支持逻辑语句(呵呵,毕竟不是 T-SQL)等等,我也还不清楚它是不是预编译了。不过,正如同 VBScript 实现的所谓“类”仅仅具有封装性,对于代码结构的“美化”和程序重用性具有很大促进一样,Access 的“轻量存储过程”,对于规范,小出错几率的数据库操作应该也有帮助,并且性能可能会有提高。

  下面我译 step by step 的方式,介绍如何在 Access 中创建存储过程,然后在 ASP 程序中使用它。

  (一)在 Access 中创建“存储过程”

  不知道大家的 Access 应用水平如何,反正它对于我来说,仅仅就是一个 MDB 数据库文件的创建工具,我只会新建 MDB 文件,然后在 Access 的界面中创建表,索引,约束等等,over~

  Access 中的“查询”,就扮演了存储过程的角色。下文中我提到的 Access 的“存储过程”或者“查询”都是指这个东西

  对于“查询”的创建,Access 提供了一个傻瓜工具,类似 VS.NET 里边建立 DataAdapter 时的向导。不过我喜欢直接写 SQL 代码

  好,下面先看看我们这个简单的例子中所使用的数据库的表结构。
wwww.iTbulo.combJJXD

wwww.iTbulo.combJJXD


  然后在 Access 主界面上点击左侧的“查询”按钮,再在右边双击“在设计视图中创建查询”,以打开查询设计视图。
wwww.iTbulo.combJJXD

wwww.iTbulo.combJJXD

这时弹出的是可视化的查询生成器,我们首先添加 SQL 语句需要涉及的表。
wwww.iTbulo.combJJXD

wwww.iTbulo.combJJXD


  添加表之后,在设计视图上点击鼠标右键,选择“SQL 视图”,以切换到 SQL 代码编辑窗口。
wwww.iTbulo.combJJXD

wwww.iTbulo.combJJXD


  好,下面说说 Access 的存储过程的特点。

  Access 的查询,我目前的感觉是对 SQL 语句的一个包装,或许进行了某种优化如预编译。我们不能像写 SQL Server 存储过程那样使用多重操作,事务,逻辑判断,循环等等……
wwww.iTbulo.combJJXD



 但是我们使用 Access 存储过程的主要目的,就是使用参数额外提供的查询,使用存储过程,我们不必再面对将参数值拼接到 SQL 语句字符串中时遇到的各种麻烦,比如:

  代码:
  --------------------------------------------------------------------------------
  Dim sql
  sql = "SELECT * FROM Users WHERE UserName = ''" & userName & "''"
  --------------------------------------------------------------------------------

  以上代码中,如果字符串变量 userName 中含有“''”单引号,则会报错。我们必须手工转化:

  代码:
  --------------------------------------------------------------------------------
  Dim sql
  sql = "SELECT * FROM Users WHERE UserName = ''" & Replace(userName, "''", "''''")
  & "''" ''转化为连续两个单引号
  --------------------------------------------------------------------------------

 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号