[英]How to pass null to stored procedure input parameter with ADO and C++
[英]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.