错误: ADODB.Command (0x800A0BB9) 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误: ADODB.Command (0x800A0BB9) 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突相关的知识,希望对你有一定的参考价值。
错误类型:
ADODB.Command (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/zhuce/index.asp, 第 113 行。
我的网站目录结构就是这样的:
- Connections (文件夹)
包含:zhuce.asp ,db1.mdb
- zhuce(文件夹)
包含:index.asp ,zccg.asp
1 ,其中:zhuce.asp代码如下:
<%
Set conn = Server.CreateObject("ADODB.Connection")
rem
conn.open("driver=Microsoft Access Driver (*.mdb);dbq="&Server.MapPath("../Connections/db1.mdb"))
%>
2 ,index.asp 主要代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../Connections/zhuce.asp" -->
<%
' *** Edit Operations: declare variables
Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd
Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId
Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.htmlEncode(Request.QueryString)
End If
' boolean to abort record edit
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables
If (CStr(Request("MM_insert")) = "form1") Then
MM_editConnection = MM_zhuce_STRING
MM_editTable = "用户注册表"
MM_editRedirectUrl = "zccg.asp"
MM_fieldsStr = "user|value|pass|value"
MM_columnsStr = "用户名|',none,''|密码|',none,''"
.........
If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If
End If
%>.........
请各位大侠帮忙解决一下。谢谢!
MM_editCmd.ActiveConnection = MM_editConnection
(第113行)
MM_editCmd.ActiveConnection = MM_editConnection
改成
MM_editCmd.ActiveConnection = Conn 参考技术A 请问这个问题最后是怎么解决的?我现在遇到同样的问题
将大型XML数据传递给ADODB中的xml数据类型参数
我有一个采用xml数据类型参数的过程
create procedure my_procedure
@xml_parameter xml
as
begin
(...)
end
我从经典的asp页面调用该过程,使用如下命令:
set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = MyConnObj
cmd.CommandText = "my_procedure"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@xml_parameter", adLongVarChar, adParamInput, Len(xmlData), xmlData)
如果我传递一个小的xml,它会工作。但是当我传递一个大的xml,+ - 200 Kb时,我收到消息“该过程需要@xml_parameter参数,但未通知”。
有谁知道我怎么能把这个xml传递给存储过程?
PS:当我从“SQL Server Management Studio”调用具有相同xml数据的过程时它也有效,因此似乎限制来自ADO。
编辑于2014年6月19日:
调试问题我从ODBC驱动程序发现一条消息,说某些数据被截断。我尝试使用“Driver = {SQL Server Native Client 11.0}”更改驱动程序,但现在我收到消息:“无法确定元数据,因为语句(...)使用临时表”
通过使用ADODB 2.8,Parameters.Refresh方法初始构建参数,AppendChunk方法构建其值并在执行前将参数类型更改为adLongVarWChar(原来是adVarWChar),我能够成功地将超过7MB的数据提交到procedure的参数中
.Refresh查询数据库中的参数,从而获得额外的数据库通信。所有需要完成而不是刷新传递的长度为Len + 1,用于null终止字符。
以上是关于错误: ADODB.Command (0x800A0BB9) 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突的主要内容,如果未能解决你的问题,请参考以下文章
VBA - ADODB.Connection - 使用参数和检索受影响的记录数