MFC连接access数据源的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:31:04
我用MFC作了两个对话框。其中一个是主对话框,另外一个是查询数据库对话框。运行起来是这样的:单击主对话框上的查询按钮,弹出查询数据对话框,然后对数据库的数据进行查询操作。我在查询对话框的初始事件中加入了连接数据源的代码,如下:
m_Connection->Open(L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=tongji.mdb",L"",L"",adOpenUnspecified);
理论上来讲这样运行的时候程序连接的是我的程序所在的文件夹里的access文件。
现在我在主程序对话框里加入了一个按钮,实现打开对话框选择文件的的功能。比方说我单击了这个按钮,选择了一个文件,路径是:E:\hua.jpg.
然后我又点击查询按钮,程序就会去E盘寻找数据源。可是我想实现的是程序直接在我的程序所在的文件夹里寻找数据源。请问该怎么修改代码?

用绝对路径
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left (nPos);
CString lpszFile = sPath + "\\AM200.mdb";
CString sDSN="ODBC;DRIVER=Microsoft Access Driver (*.mdb);DSN=SDB;DBQ="+lpszFile;

g_db.m_db = new CDatabase;
if(!g_db.m_db->Open(NULL, FALSE, FALSE, sDSN, FALSE))