我现在有一个表A
字段: id int IDENTITY(1,1)
name varchar(50)
我写了一个sql语句执行插入操作
"Insert into [" + mod.m_cTableName + "](" + ShortFields + ") values (?);"
name值是通过参数传入的
sqlAdo.AddParamter(_T("@Name"), adParamInput, adVarChar, 50, _variant_t(mod.m_sName));
执行是
sqlAdo.ExecuteNonQuery(adCmdText, sql.c_str());
怎么获取到它自增长的id呢?
我*。。。知道原因了,这里执行了2个sql语句,所以,其实返回的结果集应该是2个,不像ado.net里面直接可以select到值
正确的作法是:
将recordset指针移动到下一个结果集
sqlAdo.NextRecordset(a);
然后再获取id值
sqlAdo.GetFieldValue(_T("outid"), mod.m_nId);
这样就可以了
SQL语句最后加上SELECT @@identity,返回第一行第一列
我用的是select SCOPE_IDENTITY();但是返回之后取不到值,总是会报一个错误指针的error