This Domain(Admin5.com) is for Sale:

在Access中使用“数据库存储过程”(一)

时间:2007-12-23  来源:不详  作者:迈克DB


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

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

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

  而使用带参数查询,我们的 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 语句后存并命名。

在Access中使用“存储过程”(一)(图五)

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息