从我做过任何典型的算术工作以来,时间已很长,但最近有人要求他接受另一个人正在做的只是我的项目。
该网址在后端有2008年服务器数据库,我需要添加一个记录,并检索作为直径的自动识别栏。
我的《手法》载于这里......
Call fncOpenData()
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = oConn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "usp_ins_MyRecord"
cmd.Parameters.Refresh
cmd.Parameters.Append cmd.CreateParameter("@MyValue", adVarChar, adParamInput, 10)
cmd.Parameters("@MyValue") = Request.Form("MyValue")
cmd.Execute
而我所储存的程序是用此法典制定的。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE usp_ins_MyRecord
@MyValue varchar(10)
AS
BEGIN
INSERT INTO [MyRecords]
(
[MyValue]
)
VALUES
(
@MyValue
)
END
GO
现在,当我上页时,我有以下错误......
“Microsoft OLE DB 为ODBC司机提供错误 80040e14
[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure 或function usp_ins_MyRecord has too many arguments specified.
/MyPage.asp, Line ...”
如果我去掉这一条线,
cmd.Parameters.Refresh
I get the following error...
“Microsoft OLE DB 为ODBC司机提供错误 80040e14
[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure 或function usp_ins_MyRecord expects parameter @MyValue , which was not supplied.
/MyPage.asp, Line ...”
Erm, yes it was?!
如果我以任何其他方式改变我的代码,增加参数,例如
cmd.Parameters.Append cmd.CreateParameter("@MyValue", adVarChar, adParamInput, 10, Request.Form("MyValue")
或
myValue = Request.Form("MyValue")
Set param = cmd.CreateParameter("@MyValue", advarchar, adParamInput, 10)
cmd.Parameters.Append param
param.Value = myValue
I get the same err或as before, stating the parameter wasn t specified?
我知道这一技术是过时的,我确实希望能使用。 净额是我必须使用的,但我却把我的头发拉到这里,不快。
Can anyone see what s wrong, 或explain why I m having trouble getting ASP to use SQL Server 2008 stored procs?
感谢。