记录集为只读的问题
朋友的一个程序,里面用的是ODBC数据源,类型是Access的。
现在问题是只要一运行到AddNew的时候就报错:记录集是只读。找了半天也没有找到原因。望各位大侠指点一下。感谢~~
代码如下:
void CMainFrame::OnTimer(UINT nIDEvent)
{
if(nIDEvent!=1)
return;
{
GenerateRandomStatus();
//获取CMYSET对象指针,准备添加刚获取的信息
CMyView*pView=(CMyView*)this->GetActiveView();
CMySet*pSet=pView->m_pSet;
//向数据库添加新记录,以刚获取的数据填充
char szStatus1[50];
char szStatus2[50];
char szStatus3[50];
sprintf(szStatus1, _T("%d\r"),
m_nAngle);
sprintf(szStatus2, _T("%d\r"),
m_nRoCurrent);
sprintf(szStatus3, _T("%d\r"),
m_nStaVoltage);
CString strStatus1;
strStatus1.Format(szStatus1);
CString strStatus2;
strStatus2.Format(szStatus2);
CString strStatus3;
strStatus3.Format(szStatus3);
pSet->AddNew(); // 问题就出在这里!
pSet->m_statorVoltage=strStatus3;
pSet->m_rotorCurrent=strStatus2;
pSet->m_angle=strStatus1;
//pSet->m_statorVoltage=m_nStaVoltage;
//pSet->m_rotorCurrent=m_nRoCurrent;
//pSet->m_angle=m_nAngle;
if(pSet->CanUpdate())
{
pSet->Update();
}
//将记录指针移动到最后一个记录处,并刷新视图显示
if(!pSet->IsEOF())
{
pSet->MoveLast();
}
pView->m_dbGrid.Refresh();
pView->UpdateData(FALSE);
}
CFrameWnd::OnTimer(nIDEvent);
}
问题点数:20、回复次数:8Top
1 楼handsomerun(毛毛)回复于 2006-03-16 17:31:29 得分 0
记录集是只读…………
如果不设成只读呢??Top
2 楼linsi(〆轻羽无痕♀)回复于 2006-03-16 18:06:05 得分 0
是啊,关键是如何设置,我都不知道问题出在哪里。。。Top
3 楼handsomerun(毛毛)回复于 2006-03-16 19:32:28 得分 5
open的时候,不要选那个什么readonly就可以了啊~~
用别的Top
4 楼linsi(〆轻羽无痕♀)回复于 2006-03-16 21:27:57 得分 0
可是在程序里没有找到Open的地方呀。Top
5 楼linsi(〆轻羽无痕♀)回复于 2006-03-17 12:31:24 得分 0
没有人肯帮帮我吗?Top
6 楼handsomerun(毛毛)回复于 2006-03-17 13:30:42 得分 5
这个东西
m_pSet
哪来的??
没有open,怎么获得内容呢??
用excute获得的??Top
7 楼linsi(〆轻羽无痕♀)回复于 2006-03-17 19:56:54 得分 0
它是用ODBC数据库连接数据库的呀,没有用到open。
Top
8 楼xingluniori(飞影)回复于 2006-03-17 22:18:58 得分 10
定义纪录集游标错了!~!Top




