VC++获取SQLSERVER 2008插入记录后的自增主键ID
sql="INSERTINTO T_PlayListHeaddd (Feaname, BeginTime,";
sql+="MediaType,ChannelNo,ConfigFlag) VALUES ";
str.Format("('%s', '%s','%s', '%s','1')",HeadFileName,strtime,RecordType,ChannelNo);
sql+=str;
if(ado.ExecteSql((_bstr_t)sql)) //如果插入数据库成功,那么查询出主键ID
{
//VC++获取sql server 2008插入数据库的主键ID,只能用下面的这种方式,
//不能用select @@IDENTITY获取主键,因为sql server 2008存在的一个bug,获取会失败
//查询出主键ID
sql="SET NOCOUNT ON selectSCOPE_IDENTITY() as HeaderId ";
_RecordsetPtrm_pRecordset1;
try
{
m_pRecordset1= ado.GetRecord((_bstr_t) sql);
}
catch(...)
{
return FALSE;
}
if(!m_pRecordset1->rsEOF)//如果该记录存在
{
g_Data.CurListHeaderId=atoi((char*)(_bstr_t)m_pRecordset1->GetCollect("HeaderId"));
}
else
{
ado.ExitConn();
g_Data.IsInsert=false;
returnFALSE;
}
}
else
{
ado.ExitConn();
g_Data.IsInsert=false;
returnFALSE;
}