ADO 不支持存储过程中的 XML
ADO Not Supporting XML in stored procedure
当尝试从 c++ 在 sql 服务器中执行存储过程时,我得到 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)
相关文章:
- 是否删除在对象构造过程中创建的对象
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 如何在鼠标挂钩过程中检测拖动
- clang 插件:在编译过程中修改 AST
- 删除 XML 文件中的子节点C++
- Adafruit 羽毛RFM69HCW在使用过程中会冻结,需要硬重置
- 如何循环 n 次,在 xml 文件中每个循环一个级别
- 无法从 XML 文件中获取值
- 线程过程中的线程同步问题
- MySQL 连接器/C++.尝试在此过程中停止连接到数据库
- C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?
- 在调用过程中删除 std::函数
- 动态矩阵特征分解过程中的误差
- cmake在构建过程中使用另一个工具检测标志
- 在模板参数推导过程中丢失限定符
- 升压过程中的管道缓冲区大小
- 如何在插入过程中更改插入的值
- 在PostgreSQL函数或过程中使用C++代码
- Vulkan:设备在缓冲区复制过程中丢失
- ADO 不支持存储过程中的 XML