高手们,我想用定时器每10ms将一组浮点型数据写入数据库,一开始就打开并连接数据库,避免了反复连接数据库!
每个定时周期将数据写入。问题是,写不进去!!!!!敬请指点。
现附上小弟的代码:
void CMyDlg::OnStart() 
{
      _ConnectionPtr pConn(__uuidof(Connection));
      _CommandPtr pCmd(__uuidof(Command));
      pConn->ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;Data Source = db10.mdb;Persist Security Info = False";
      pConn->Open("", "", "", adConnectUnspecified);
      pCmd->ActiveConnection = pConn;
      m_timer = SetTimer(1, 200, NULL);   
}void CMyDlg::OnTimer(UINT nIDEvent) 
{
if(m_Time<10)  
{
SQL.Format("insert into db10 values(%d, %f, %f, %f, %f, %f,%f,%f,%f,%f,%f,now())",
1, shuzu[0],shuzu[1], shuzu[2],shuzu[3],shuzu[4],shuzu[5],shuzu[6],shuzu[7],
                            shuzu[8],shuzu[9]);
m_Time+=0.2;              //动作一次当前时间就要加一周期10ms
}
else                                     //如果到了终止时间
{
KillTimer(1);                         //清除ID号为1的时钟
m_Time=0;                             //当前时间归零
}
CDialog::OnTimer(nIDEvent);
}

解决方案 »

  1.   

    定时器里也没有写数据库的函数啊,哪一句是写库?你仅仅构造了一个字符串SQL而已,没有执行SQL的函数
      

  2.   


    操作数据库类之前要先调用createinstance()...
      

  3.   

    高人说得是....我用的就是SQL语言,那句字符串就是写入....我再试试,可能差一个执行语句!谢谢啦....
      

  4.   

    小弟用的是ado调用access,没有用到您说createinstance,还请细节指教?
      

  5.   

    Provider = Microsoft.access.4.0;
      

  6.   

    你这个应该只是个插入语句把,还是要去执行
    搜索下Execute这个