Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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
C++ 如果与SQLBindParameter一起使用,SCOPE_IDENTITY()始终返回NULL_C++_Sql Server - Fatal编程技术网

C++ 如果与SQLBindParameter一起使用,SCOPE_IDENTITY()始终返回NULL

C++ 如果与SQLBindParameter一起使用,SCOPE_IDENTITY()始终返回NULL,c++,sql-server,C++,Sql Server,我尝试通过ODBC sql server将数据插入数据库。 我想拿回此行的Id,所以我使用selectscope_IDENTITY() 因为这个表的id是主键,并且是自动递增的。 Insert函数工作正常,数据被插入数据库。 但是当我使用选择SCOPE_IDENTITY()时返回NULL 所以我尝试使用不带SQLBindParameter的纯语句选择范围_标识()工作正常。您对我在使用SQLBindParameter时出现问题的原因有何建议 这是我的dB表格: [主键](长)Id (nvarch

我尝试通过ODBC sql server将数据插入数据库。 我想拿回此行的Id,所以我使用
selectscope_IDENTITY()
因为这个表的id是主键,并且是自动递增的。
Insert函数工作正常,数据被插入数据库。
但是当我使用
选择SCOPE_IDENTITY()时返回NULL

所以我尝试使用不带SQLBindParameter的纯语句<代码>选择范围_标识()工作正常。您对我在使用SQLBindParameter时出现问题的原因有何建议

这是我的dB表格:

[主键](长)Id (nvarchar(255))名称 (空头)头寸
这个问题的解决方案是使用“OUTPUT”子句返回插入项的成员,而不是调用
selectscope_IDENTITY()


因此,完整的sql命令是
插入[dbo].[Test]([Name],[Position])输出插入的[Id]值(?,1) < /P>虽然我不能读取C++,但它看起来像你的代码>插入< /C> >,调用<代码> StopeIOnIsIs/COD> >在不同的批次/范围内;因此,插入的范围已经丢失。您应该在同一作用域(名称中提示)中返回
SCOPE\u IDENTITY
的值。@Larnu感谢您的响应,我尝试移动“``SCOPE\u IDENTITY```以在
INSERT
函数中切换大小写,但结果仍然相同。是否检查了
SQLBindCol
?如果SQL中的标识列是
int
,而不是
bigint
,您是否尝试过使用
SQL\u C\u int
来代替它?@AlwaysLearning我已经检查了
SQLBindCol
SQLRETURN
,结果是
SQL\u SUCCESS
。我试着使用
SQL\u C\u SBIGINT
,结果仍然是相同的
NULL
。我想应该是
SQLBindCol(hStmt,0,…。
,并且您可能想首先强制转换结果
选择强制转换(SCOPE\u IDENTITY()AS int))因为