Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ADO在存储过程中不支持XML 在尝试从C++中执行SQLServer存储过程时,我得到CE= {dByEyErrRoRunScript命令}/P>_C++_Xml_Sql Server 2005_Visual C++_Stored Procedures - Fatal编程技术网

ADO在存储过程中不支持XML 在尝试从C++中执行SQLServer存储过程时,我得到CE= {dByEyErrRoRunScript命令}/P>

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>';

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>';

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)