1.怎样实现对数据库的定时访问,比如说三分钟一次看看有没新记录?
2.偶写了个通信测试程序,没有error,而且可以通信不过运行消息框报错。我估计是下面这个方法中对数据库操作出了问题,请高手指点。报错内容“IDispatch error #3119”。清高手指点!急死了void CTalkDlg::GetOperations()
{
::CoInitialize(NULL);
_ConnectionPtr MyDb;
_RecordsetPtr MySet;
_variant_t var;
CString strFLAG;
    MyDb.CreateInstance(__uuidof(Connection));
MySet.CreateInstance(__uuidof(Recordset));
try
{

MyDb->Open("DSN=sample","","",adModeUnknown);
MySet->Open("SELECT * FROM Operations", MyDb.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
while(!MySet->adoEOF)
{
var=MySet->GetCollect("flag");
if(var.vt!=VT_NULL)
{
strFLAG=(LPCSTR)_bstr_t(var);

if(strFLAG="0")
{
var=MySet->GetCollect("operation");
if(var.vt!=VT_NULL)
{
m_strMsg=(LPCSTR)_bstr_t(var);
//m_strMsg.Format("%s*auto",strCODE)
MySet->AddNew();
MySet->PutCollect("flag",_variant_t((long)1));
}
}
MySet->MoveNext(); }
}
MySet->Update();

MySet->Close();
MyDb->Close();
AfxMessageBox("chenggong");
}
catch(_com_error e)
{
CString str;
str.Format("%s",e.ErrorMessage());
AfxMessageBox(str);
}

MySet=NULL;
MyDb=NULL;
::CoUninitialize();
}

解决方案 »

  1.   

    将光标定位到怀疑有问题的代码行上按F9,在该行上设置一个断点,然后按F5进入调试状态,当程序运行到断点处之后,可以按分F10或F11来单步跟踪一下!跟踪看你是在那一句出错了!找到出错地方才好解决问题!
      

  2.   

    高手指点一下定时器怎么设?可不可以给个sample?
    第二个问题已经解决拉,没有问题了
    现在就在着急怎么定时访问数据库
    谢谢指教!!!
    在线等待!
      

  3.   

    两个使用定时器的例子:
    http://www.vckbase.com/document/viewdoc/?id=281
    http://www.vckbase.com/document/viewdoc/?id=594
      

  4.   

    SetTimer(...,...,...);
    KillTimer(...,...,...);