用odbc写access数据库的最基本问题,我用以下方法操作多个CRecordSet的派生类向access数据库的多个表里写数据,总出现被admin用户锁定无法更新的错误。
是以下写法有错误,还是怀疑其他的没有列出的部分含有错误?
CRecordSet的派生类 m_RouteDB, m_RouteDB2, m_RouteDB3, m_RouteDB4; //(每个派生类都对应一个表)我对这里面每个派生类都进行以下相同的操作:
int m_nstep, callsign, comu_time, end_time;
//////////////////////////////////////////////////////////////
CRecordSet的派生类 m_RouteDB;
............................
1.写数据库:
writeDataBase()
{
try
{
m_RouteDB.Open(CRecordset::dynaset, "SELECT * FROM tlk_RouteBrdcst");
m_RouteDB.AddNew();
m_RouteDB.m_t = m_nstep;
m_RouteDB.m_callsign = callsign;
m_RouteDB.m_comutime = comu_time;
m_RouteDB.m_endtime = end_time;
m_RouteDB.Update();
m_RouteDB.Close();
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
return;
} }
是以下写法有错误,还是怀疑其他的没有列出的部分含有错误?
CRecordSet的派生类 m_RouteDB, m_RouteDB2, m_RouteDB3, m_RouteDB4; //(每个派生类都对应一个表)我对这里面每个派生类都进行以下相同的操作:
int m_nstep, callsign, comu_time, end_time;
//////////////////////////////////////////////////////////////
CRecordSet的派生类 m_RouteDB;
............................
1.写数据库:
writeDataBase()
{
try
{
m_RouteDB.Open(CRecordset::dynaset, "SELECT * FROM tlk_RouteBrdcst");
m_RouteDB.AddNew();
m_RouteDB.m_t = m_nstep;
m_RouteDB.m_callsign = callsign;
m_RouteDB.m_comutime = comu_time;
m_RouteDB.m_endtime = end_time;
m_RouteDB.Update();
m_RouteDB.Close();
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
return;
} }
解决方案 »
- virtual used for static member function ==== 把Win32 API简单的封装,试着自己写个框架,遇到的问题???
- 在游戏全屏下如何保持非模态对话框不被游戏画面盖住?
- 关于waveInProc的问题,请高手指点!在线等!!!!!!!!!!
- 什么样的条件才能找到一份VC程序员的工作?
- 新建一个类,他的基类是CObject与没有基类有何区别?
- 新手刚学openGL,三维显示的问题
- 请问:如何在VC里得到一个域名的IP地址.如,怎样得到http://www.sohu.com的IP地址
- 无聊,散分
- 哪位高手帮我看看这段简单的VC线程的程序,可以运行,但。。。
- 我在CView中创建了一个CListCtrl,向其中插入了两万条纪录,但在DeleteAllItems()时要等半天才能反映过来,究竟出了什么问题?
- 关于mdb文件问题!
- Ado疑难问题,封装Ado的时候,怎样用Ado来判断,输入的语句是select xxx还是,insert or update
btw,你试试写一个表会出错吗?
如果这也出错,那可能是access的什么设置不对了
如果不出错,可能是多个CRecordSet同时操作同一个表了
应该时出现了楼上laiyiling(◆陌生人·V2.0◆)大侠所说的错误了,
可是为什么呢?我每次操作完后都用m_RouteDB.Close(); 关闭了该recordset了阿?
每次运行总出现同样的错误。
if(m_bAddMode)
{
if(!UpdateData())
return false;
TRY
{
m_pSet->Update();
}
CATCH(CDBException,e)
{
AfxMessageBox(e->m_strError);
return false;
}
END_CATCH
m_pSet->Requery();
UpdateData(false);
m_bAddMode=false;
return true;
}
else
{
return CRecordView::OnMove(nIDMoveCommand);
}