在Access中使用“存储过程”(一)
2005-11-01 13:16:24 来源:WEB开发网核心提示: 这时弹出的是可视化的查询生成器,我们首先添加 SQL 语句需要涉及的表,在Access中使用“存储过程”(一)(2),添加表之后,在设计视图上点击鼠标右键,我们必须手工转化:代码:Dim sqlsql = "SELECT * FROM Users WHERE UserName = '" &
这时弹出的是可视化的查询生成器,我们首先添加 SQL 语句需要涉及的表。
添加表之后,在设计视图上点击鼠标右键,选择“SQL 视图”,以切换到 SQL 代码编辑窗口。
好,下面说说 Access 的存储过程的特点。
Access 的查询,我目前的感觉是对 SQL 语句的一个包装,或许进行了某种优化如预编译。我们不能像写 sql server(WINDOWS平台上强大的数据库平台) 存储过程那样使用多重操作,事务,逻辑判断,循环等等……
但是我们使用 Access 存储过程的主要目的,就是使用参数额外提供的查询,使用存储过程,我们不必再面对将参数值拼接到 SQL 语句字符串中时遇到的各种麻烦,比如:
代码:
--------------------------------------------------------------------------------
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
--------------------------------------------------------------------------------
添加表之后,在设计视图上点击鼠标右键,选择“SQL 视图”,以切换到 SQL 代码编辑窗口。
好,下面说说 Access 的存储过程的特点。
Access 的查询,我目前的感觉是对 SQL 语句的一个包装,或许进行了某种优化如预编译。我们不能像写 sql server(WINDOWS平台上强大的数据库平台) 存储过程那样使用多重操作,事务,逻辑判断,循环等等……
但是我们使用 Access 存储过程的主要目的,就是使用参数额外提供的查询,使用存储过程,我们不必再面对将参数值拼接到 SQL 语句字符串中时遇到的各种麻烦,比如:
代码:
--------------------------------------------------------------------------------
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
--------------------------------------------------------------------------------
更多精彩
赞助商链接