快速业务通道

在 Access 中使用“存储过程”

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-19
 而使用带参数查询,我们的 SQL 语句可以写为:

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

  然后把参数 @userName 的值以 Command 对象的 Parameter 属性来传入即可,很方便直观。

  代码:
  --------------------------------------------------------------------------------
  With cmd
  ''创建参数对象
  .Parameters.Append .CreateParameter("@userName")

  ''给各参数指定值
  .Parameters("@userName") = userName
  End With
  --------------------------------------------------------------------------------

  这里还要说明 Access 存储过程中参数的使用。和 SQL Server 的存储过程中用 @ 变量指定参数,然后同名传入参数对象不同,Access 中的参数,是以“顺序”而非“名字”来识别的。传入的参数无需指定名字,随便起,SQL 中的参数名字也可以随便起,只要传入参数值时,按照 SQL 语句中的参数出现顺序指定就行了。通常,我们使用 Command 对象的 Execute 方法,直接传入参数值数组来执行~

  代码:
  --------------------------------------------------------------------------------
  cmd.Execute , Array(userName)
  --------------------------------------------------------------------------------

  再比如,你的一个 Access 存储过程这么写:

  代码:
  --------------------------------------------------------------------------------
  select * from Users where UserName = p_UserName and BookTitle = p_bookTitle
  --------------------------------------------------------------------------------

  你可以就这么执行,通过传入参数值数组,但是顺序要对应:

  代码:
  --------------------------------------------------------------------------------
  cmd.Execute , Array(userName, bookTitle)
  --------------------------------------------------------------------------------

  OK,看看我们的例子中使用的两个查询,一个是写入数据。写好 SQL 语句后存并命名。
wwww.iTbulo.combJJXD

wwww.iTbulo.combJJXD


  另一个读取数据的存储过程代码。
wwww.iTbulo.combJJXD

wwww.iTbulo.combJJXD


使用存储过程

然后我们可以在 ASP 程序中调用这些存储过程了。

  这里可以看到为什么我说 Access 中的查询就是它的存储过程——我们的 Command 对象的 CommandType 属性设置的是 4,即 Stored Proc!

  so...

  以下的代码很简单:


  代码:
  --------------------------------------------------------------------------------
   wwww.iTbulo.combJJXD

<%
  Option Explicitwwww.iTbulo.combJJXD


 wwww.iTbulo.combJJXD

  Dim s
  Randomize
  s = Rnd * 100wwww.iTbulo.combJJXD


 wwww.iTbulo.combJJXD

  Dim conn, cmd
  Set conn = Server.CreateObject("ADODB.Connection")
  Set cmd = Server.CreateObject("ADODB.Command")wwww.iTbulo.combJJXD


 wwww.iTbulo.combJJXD

  conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("sp.mdb")wwww.iTbulo.combJJXD


 wwww.iTbulo.combJJXD

  With cmd
  .ActiveConnection = conn
  .CommandType = &H0004 ''存储过程
  .CommandText = "AddNewData"
  End Withwww

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号