我要从一个access数据库中取数据写入sql server中,其中若这个数据已经在sqlserver中则改写,否则插入。我想用事务,但需要检测其中的数据是否存在,我是这样用的:
theApp.m_pConnection->BeginTrans()   //sql server的连接串//读取access数据
while(!m_pAccess->AdoEOF)
{
 //取数据
 m_pSqlCmd->Command = sql;   //以下两行用于检测sql server中是否有重复记录
 m_pSqlRec = m_pSqlCmd->Execute(NULL, NULL, adCmdText);   //运行到此句就出错 m_pAccess->MoveNext();
}theApp.m_pConnection->CommitTrans()
请问是不是事务中有什么要注意的地方?

解决方案 »

  1.   

    //取数据
    m_pSqlCmd->Command = sql;   //以下两行用于检测sql server中是否有重复记录
    m_pSqlRec = m_pSqlCmd->Execute(NULL, NULL, adCmdText);   //运行到此句就出错你把上面两条用下面的方式试试看:
    m_pSqlRec->Open(_variant_t(t),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdUnknown);
      

  2.   

    写错了,改成:
    m_pSqlRec->Open(_variant_t(sql),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdUnknown);