而使用带参数查询,我们的 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 |