在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 语句后存并命名。
文章评论
共有位Admini5网友发表了评论 查看完整内容