access中使用“存储过程”

access中使用“存储过程”

ID:34721464

大小:97.68 KB

页数:5页

时间:2019-03-10

access中使用“存储过程”_第1页
access中使用“存储过程”_第2页
access中使用“存储过程”_第3页
access中使用“存储过程”_第4页
access中使用“存储过程”_第5页
资源描述:

《access中使用“存储过程”》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、另外提供。事实上,Access(2000及以上版本)中所谓“存储过程”,和SQLServer中的StoredProcedure是不能比的。他只能算是“StoredProcedureLite”,不支持多条SQL语句,不支持逻辑语句(呵呵,毕竟不是T-SQL)等等,我也还不清晰他是不是预编译了。不过,正如同VBScript实现的所谓“类”仅仅具有封装性,对于代码结构的“美化”和程式重用性具有非常大促进相同,Access的“轻量存储过程”,对于规范,小出错几率的数据库操作应该也有帮助,并且性能可能会有提高。下面我译stepbystep的方式,介

3、绍怎么在Access中创建存储过程,然后在ASP程式中使用他。(一)在Access中创建“存储过程”不知道大家的Access应用水平怎么,反正他对于我来说,仅仅就是个MDB数据库文件的创建工具,我只会新建MDB文件,然后在Access的界面中创建表,索引,约束等等,over~Access中的“查询”,就扮演了存储过程的角色。下文中我提到的Access的“存储过程”或“查询”都是指这个东西对于“查询”的创建,Access提供了一个傻瓜工具,类似VS.NET里边建立DataAdapter时的向导。不过我喜欢直接写SQL代码好,下面先看看我们这

4、个简单的例子中所使用的数据库的表结构。然后在Access主界面上点击左侧的“查询”按钮,再在右边双击“在设计视图中创建查询”,以打开查询设计视图。这时弹出的是可视化的查询生成器,我们首先添加SQL语句需要涉及的表。添加表之后,在设计视图上点击鼠标右键,选择“SQL视图”,以转换到SQL代码编辑窗口。好,下面说说Access的存储过程的特点。Access的查询,我目前的感觉是对SQL语句的一个包装,或许进行了某种优化如预编译。我们不能像写SQLServer存储过程那样使用多重操作,事务,逻辑判断,循环等等……不过我们使用Access存储过程

5、的主要目的,就是使用参数额外提供的查询,使用存储过程,我们不必再面对将参数值拼接到SQL语句字符串中时遇见的各种麻烦,比如:代码:Dimsqlsql="SELECT*FROMUsersWHEREUserName="&userName&""以上代码中,如果字符串变量userName中含有“”单引号,则会报错。我们必须手工转化:代码:Dimsqlsql="SELECT*FROMUsersWHEREUserName="&Replace(userName,"","")&""转化为连续两个单引号而使用带参数查询,我们的SQL语句能写为:代码:Dim

6、sqlsql="SELECT*FROMUsersWHEREUserName=@userName"然后把参数@userName的值以Command对象的Parameter属性来传入即可,非常方便直观。代码:Withcmd   创建参数对象   .Parameters.Append.CreateParameter("@userName")   给各参数指定值   .Parameters("@userName")=userNameEndWith这里还要说明Access存储过程中参数的使用。和SQLServer的存储过程中用@变量指定参数,然后同

7、名传入参数对象不同,Access中的参数,是以“顺序”而非“名字”来识别的。传入的参数无需指定名字,随便起,SQL中的参数名字也能随便起,只要传入参数值时,按照SQL语句中的参数出现顺序指定就行了。通常,我们使用Command对象的Execute方法,直接传入参数值数组来执行~代码:cmd.Execute,Array(userName)再比如,你的一个Access存储过程这么写:代码:select*fromUserswhereUserName=p_UserNameandBookTitle=p_bookTitle你能就这么执行,通过传入参数

8、值数组,不过顺序要对应:代码:cmd.Execute,Array(userName,bookTitle)OK,看看我们的例子中使用的两个查询,一个是写入数据。写好SQL语句后保存并命名。另一个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。