我在一个对话框的 初始化中 导入数据库,部分代码如下:
CDialog::OnInitDialog();
_ConnectionPtr m_pConnection=NULL;
CoInitialize(NULL);
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",-1);}
=======================================
在该对话框里,我给编辑框导入文件调用了
CString FilePathName;
CFileDialog dlg(true,NULL,NULL,NULL,"(*.txt)");///TRUE为OPEN对话框,FALSE为SAVE AS对话框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();======================================
关闭该对话框再次domodal打开次对话框,数据库就报错了,说连接失败
问题是,只要我调用以上读入文件的代码,重新打开对话框,初始化时红色那句话就报错,这是什么问题啊?
不调用以上读入文件代码就不会错可能什么原因导致的呢?
CDialog::OnInitDialog();
_ConnectionPtr m_pConnection=NULL;
CoInitialize(NULL);
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",-1);}
=======================================
在该对话框里,我给编辑框导入文件调用了
CString FilePathName;
CFileDialog dlg(true,NULL,NULL,NULL,"(*.txt)");///TRUE为OPEN对话框,FALSE为SAVE AS对话框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();======================================
关闭该对话框再次domodal打开次对话框,数据库就报错了,说连接失败
问题是,只要我调用以上读入文件的代码,重新打开对话框,初始化时红色那句话就报错,这是什么问题啊?
不调用以上读入文件代码就不会错可能什么原因导致的呢?
if(m_pConn->State)
m_pConn->Close();
m_pConn.Release();
FileDialog时改变了当前路径所致!!! // 以下是你的代码片段
CFileDialog dia(TRUE);
dia.DoModal(); // 这行去掉,是多余的
if(dia.DoModal()==IDOK) char szCurDir[MAX_PATH]; // 增加一个变量 //放在DoModal之前,保存当前目录
GetCurrentDirectory(MAX_PATH,szCurDir); //放在MyDB-> Open(...)之前,恢复当前目录
SetCurrentDirectory(szCurDir);