下面是我的_ConnectionPtr的程序
void ADO::OnInitADOConn1()
{
::CoInitialize(NULL);
try
{
  m_pConnection.CreateInstance("ADODB.Connection"); //创建连接对象实例
_bstr_t strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\
uid=;pwd=;DBQ=other.mdb;";
m_pConnection->Open(strConnect,"","",adModeUnknown); //打开数据库
}
catch(_com_error e)
{
AfxMessageBox(e.Description()); //弹出错误处理
}
}
在OnTimer里面调用,10秒钟调用一次。(每10秒有一个写入数据库的操作)
但我只要代开文件保存对话框,代码如下:
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_NOCHANGEDIR,
"All Files(*.bmp)|*.bmp||",AfxGetMainWnd());if(dlg.DoModal() == IDOK)
{
  ...
}
在文件对话框界面,我还没点“保存”,就会弹出“找不到文件”的错误提示。如果我在OnTimer里面把写入数据库的操作屏蔽掉,则没有这个问题。为何我打开保存文件对话框会影响到写入数据库的操作?
问题出在哪里?我的猜想是,打开保存文件对话框,使得软件的默认路径改变了,从而使得在m_pConnection->Open中找不到正确的路径,对吗?
谢谢!还有个问题,_ConnectionPtr::Open(...),里面怎么指定数据库的路径在哪里?谢谢