【发布时间】:2014-05-26 09:54:56
【问题描述】:
我在寻找解决 ASP 经典中检索 XML 问题的解决方案时发现了此错误: Declaring XML output parameters with ADODB in ASP Classic
我在使用 Classic ASP 和 SQL Server 2003 时遇到了同样的错误。我曾经在 VB6 中使用 .dll,我可以在其中获取 XML 代码。但现在我需要从 SQL 直接到 ASP。 你解决了吗?
到目前为止,我在经典 ASP 中的代码是:
set objCommandoOP = Server.CreateObject("ADODB.Command")
Set objCommandoOP.ActiveConnection = objConexion
objCommandoOP.CommandType = adcmdStoredProc
objCommandoOP.CommandText="spProducesXML"
set ParamEnt = objCommandoOP.CreateParameter("@CodOne", adInteger, adParamInput, 4, Entidad())
objCommandoOP.Parameters.Append ParamEnt
set ParamUser = objCommandoOP.CreateParameter("@CodTwo", adInteger, adParamInput, 4, Usuario())
objCommandoOP.Parameters.Append ParamUser
set ParamFrac = objCommandoOP.CreateParameter("@GroupType", adInteger, adParamInput, 4, Request("GrupoFrac"))
objCommandoOP.Parameters.Append ParamFrac
set ParamReturn = objCommandoOP.CreateParameter("@paramReturn", adXML, adParamInputOutput, 4, 0)
objCommandoOP.Parameters.Append ParamReturn
set objResultseto = Server.CreateObject("ADODB.RecordSet")
'Internal procedure that execute the ddbb sp
ExecProcedure objResultseto, adOpenStatic, objCommandoOP
sResult = "<dmo:OperationImport xmlns:dmo='http://www.example.es/XML' xmlns:xs='http://www.w3.org/2001/XMLSchema' />"
sResult = sResult & ParamReturn
sResultXML= sResultXML & "</dmo:OperationImport>"
错误发生在“adXML”行,因为作为 David,我找不到 XML 变量来从 ddbb 中获取参数。我尝试将其作为 SQL 过程的 paramReturn(使用 FOR XML EXPLICIT),还有其他想法吗?
【问题讨论】:
-
+1 至少发布一些代码,不像 David。
-
你的存储过程是什么样的?
-
代码格式不能使用 bold 降价,所以你最终会在你的
adXML周围加上**bold**,这就是为什么我在下面的added the comment line 指向你的adXML变量。但是你已经删除了它,所以我猜每个人都有自己的。 -
你告诉我的,我才把它删掉了,之前没有注意到,对不起!
-
@JavierSalazar 您不能返回 XML,您必须使用
ADODB.Stream对象对其进行流式传输。
标签: sql xml asp-classic adodb