m_pSet如何定时移动?

ubunt 2008-07-17 09:40:29
我实现的功能是点击按钮之后每隔一秒数据库.mdb中数据在编辑框中动态显示,我可以用m_pSet结合MoveFirst()和MoveNext()进行移动,请问如何结合SetTimer()和m_pSet->MoveNext()进行遍历整个数据库实现定时显示?
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
内存泄漏 2008-07-19
  • 打赏
  • 举报
回复
你每次调用OnTimer的时候,都重新创建了一个CConnectDB 对象,也就是OnTimer每次都重新连接数据库,打开记录集.当然每次都会显示第一条..

把你的CConnectDB connectDB;定义为CMymap的成员变量,然后在OnStart中进行一次数据库连接并MoveFirst,然后在OnTimer中不要再调用Initial只要调用MoveNext就可以了..
ubunt 2008-07-19
  • 打赏
  • 举报
回复
我的思路是这样!在我的响应函数里打开数据库并用MoveFirst()把第一行的数据输出到编辑框,在后面加上SetTimer(1,2000,NULL);响应WM_TIMER事件的OnTimer函数里面用同样的方法结合m_pSet->MoveNext()想实现遍历整个数据库库,但是结果只显示第一条和第二条数据,不会向后遍历!
void CMymap::OnStart()
{CConnectDB connectDB;
connectDB.Initial();
if(connectDB.m_pSet==NULL)
return;
connectDB.m_pSet->MoveFirst();
//我的代码
SetTimer(1,2000,NULL);
}
void CMymap::OnTimer(UINT nIDEvent)
{
CConnectDB connectDB;
connectDB.Initial();
if(connectDB.m_pSet==NULL)
return;

connectDB.m_pSet->MoveFirst();
switch(nIDEvent)
{
case 1:
{
connectDB.m_pSet->MoveNext();
//我的代码
break;
}
CView::OnTimer(nIDEvent);
}
请指点!
ubunt 2008-07-19
  • 打赏
  • 举报
回复
我的思路是这样!在我的响应函数里打开数据库并用MoveFirst()把第一行的数据输出到编辑框,在后面加上SetTimer(1,2000,NULL);响应WM_TIMER事件的OnTimer函数里面用同样的方法结合m_pSet->MoveNext()想实现遍历整个数据库库,但是结果只显示第一条和第二条数据,不会向后遍历!
void CMymap::OnStart()
{CConnectDB connectDB;
connectDB.Initial();
if(connectDB.m_pSet==NULL)
return;
connectDB.m_pSet->MoveFirst();
//我的代码
SetTimer(1,2000,NULL);
}
void CMymap::OnTimer(UINT nIDEvent)
{
CConnectDB connectDB;
connectDB.Initial();
if(connectDB.m_pSet==NULL)
return;

connectDB.m_pSet->MoveFirst();
switch(nIDEvent)
{
case 1:
{
connectDB.m_pSet->MoveNext();
//我的代码
break;
}
CView::OnTimer(nIDEvent);
}
请指点!
内存泄漏 2008-07-17
  • 打赏
  • 举报
回复
响应WM_TIMER事件的函数里面m_pSet->MoveNext();就行了..
sansky99 2008-07-17
  • 打赏
  • 举报
回复
WM_TIMER, CWnd::OnTimer 里m_pSet->MoveNext()

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧