我一直有我的ASP应用程序超时和登录连接问题到我的SQL Server数据库。我的主机提供商建议将我的连接字符串从ODBC DSN更改为OLEDB。一旦我这样做,我执行我的第一个存储过程时出现此错误。从ODBC DSN连接切换到OLEDB后出错
过程或函数'storedproc'需要参数'@ param1',其中 未提供。
这里是我的连接字符串
Dim objconn
Set objconn = Server.CreateObject("ADODB.Connection")
objconn.open "Provider=SQLOLEDB;Data Source=localhost\sqlexpress;Initial Catalog=db;user id=user;password=pw"
这里是我的存储过程调用
Dim objrs, cmd
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = objconn
cmd.CommandText = "storedproc"
cmd.Parameters.Append(cmd.CreateParameters("param1",adDouble,adParamInput,,session("param1")))
Set objrs = Server.CreateObject("ADODB.Recordset")
objrs.CursorLocatoin = adUseClient
objrs.Open cmd
任何想法,为什么我的电话PROC不具有不同的连接字符串工作吗?
你说CreateParameters,但它应该是CreateParameter,你不应该把方括号中的create语句括起来,AFAIK。一旦进行这些更改,它对ODBC和OLEDB都适用。 – Fionnuala 2012-07-26 19:18:54
你是否尝试实际命名参数'“@param1”'而不是'“param1”'? – AnthonyWJones 2012-07-27 08:39:16
@Remou:你的意思是'Append'的调用不需要没有偏见吗? – AnthonyWJones 2012-07-27 08:40:06