簡體   English   中英

ADO在存儲過程中不支持XML

[英]ADO Not Supporting XML in stored procedure

當嘗試從C ++在sql server中執行存儲過程時,我得到ce = {DB_E_ERRORSINCOMMAND}

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

如果在沒有xml正常工作的情況下完成插入,則插入是通過xml完成​​的。 我認為這是xml的問題,還是我們無法從C ++訪問sql server的xml功能?

該錯誤不在ADO中,而是在返回NULL的SQL中。 我懷疑dbo.sample(studentid)不允許為空。

將插入語句更改為:

INSERT INTO dbo.sample (studentid)
SELECT  
    @inputXml.value( '(/Record/studentid)[1]', 'int' ) AS studentid         

要么

INSERT INTO dbo.sample (studentid)
SELECT  
    @inputXml.value( '(//studentid)[1]', 'int' ) AS studentid         
FROM @inputXml.nodes('/Record') a(y) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM