ADO在存储过程中不支持XML 在尝试从C++中执行SQLServer存储过程时,我得到CE= {dByEyErrRoRunScript命令}/P>
c++代码是ADO在存储过程中不支持XML 在尝试从C++中执行SQLServer存储过程时,我得到CE= {dByEyErrRoRunScript命令}/P>,c++,xml,sql-server-2005,visual-c++,stored-procedures,C++,Xml,Sql Server 2005,Visual C++,Stored Procedures,c++代码是 pCom->Execute(NULL,NULL,adCmdStoredProc); 正在从命令对象执行 存储过程如下所示 create PROCEDURE [dbo].[InsertTicketDetails] AS BEGIN DECLARE @inputXml XML; SET NOCOUNT ON set @inputXml = '<Record><studentid>143</studentid></Record>';
pCom->Execute(NULL,NULL,adCmdStoredProc);
正在从命令对象执行
存储过程如下所示
create PROCEDURE [dbo].[InsertTicketDetails]
AS
BEGIN
DECLARE @inputXml XML;
SET NOCOUNT ON
set @inputXml = '<Record><studentid>143</studentid></Record>';
INSERT INTO dbo.sample (studentid)
SELECT
@inputXml.value( 'studentid[1]', 'int' ) AS studentid
FROM @inputXml.nodes('/Record') a(y)
END
创建过程[dbo]。[InsertTicketDetails]
作为
开始
声明@inputXml;
不计较
设置@inputXml='143';
插入dbo.sample(studentid)
挑选
@值('studentid[1],'int')作为studentid
来自@inputXml.nodes('/Record')a(y)
结束
如果插入是在没有xml正常工作的情况下完成的,那么这里的插入是用xml完成的。我认为XML问题还是无法从C++访问SQL Server的XML功能? < p>错误不是在ADO中,而是返回到空的SQL。我怀疑dbo.sample(studentid)不允许空值 将insert语句更改为:
INSERT INTO dbo.sample (studentid)
SELECT
@inputXml.value( '(/Record/studentid)[1]', 'int' ) AS studentid
或
问题是此存储过程不能与ado一起工作。当我尝试从sqlserver执行时,执行完成并正确插入。当我从应用程序执行时,它抛出异常。如果我删除了xml功能,它将正常工作。请显示您的ADO代码?
INSERT INTO dbo.sample (studentid)
SELECT
@inputXml.value( '(//studentid)[1]', 'int' ) AS studentid
FROM @inputXml.nodes('/Record') a(y)