如何在ObjectARX程序中用MFC OLE DB类访问Access数据库?我在编译时总是出现LNK200
如何在ObjectARX程序中用MFC OLE DB类访问Access数据库?我在编译时总是出现LNK2001错误。创建有关头文件,文件名如"myHeader.h"内容如下:
#ifndef __MyHeader_H__
#define __MyHeader_H__
#include <atlbase.h>
extern CComModule _Module;
#include <atlcom.h>
#include <atldbcli.h>
#include <atldbsch.h>
#endif
在要打开数据库的类声明中加包含上述头文件
并加入以下内容:
CDataSource * pDB;
CSession* pSession;
CMyRecordSet* pSet;
在类实现文件中初始化为上述指针变量为NULL;
在适当在函数中加入以下代码打开数据库(以Access数据库为例):
--pDB = new CDataSource();
--pSession = new CSession();
--pSet = new CMyRecordSet();
--
CDBPropSet--dbinit(DBPROPSET_DBINIT);
--dbinit.AddProperty(DBPROP_AUTH_CACHE_AUTHINFO, true);
--dbinit.AddProperty(DBPROP_AUTH_ENCRYPT_PASSWORD, false);
--dbinit.AddProperty(DBPROP_AUTH_MASK_PASSWORD, false);
--dbinit.AddProperty(DBPROP_AUTH_PASSWORD, "");
--dbinit.AddProperty(DBPROP_AUTH_USERID, "Admin");
--dbinit.AddProperty(DBPROP_INIT_DATASOURCE, "C:\\WuZejin\\Geology\\Zzt2.mdb");
--dbinit.AddProperty(DBPROP_INIT_MODE, (long)16);
--dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4);
--dbinit.AddProperty(DBPROP_INIT_PROVIDERSTRING, "");
--dbinit.AddProperty(DBPROP_INIT_LCID, (long)1033);
--//dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false);
--
--HRESULT hr = pDB->OpenWithServiceComponents("Microsoft.Jet.OLEDB.4.0", &dbinit);
--if( hr != S_OK ) return hr;
--hr = pSession->Open(*pDB);
--if ( hr != S_OK ) return hr;
--hr = pSet->Open(*pSession);
--if ( hr != S_OK ) return hr;
--hr = pSet->MoveFirst();
--if ( hr != S_OK ) return hr;
(作者:WuZejin 时间:2001-08-13.10:33:33)
这种方法不是很好,最好使用ADO,毕竟ADO是最新的技术,当然也是功能最强用起来最简单
这种方法不是很好,最好使用ADO,毕竟ADO是最新的技术,当然也是功能最强用起来最简单的这种方法不是很好,最好使用ADO,毕竟ADO是最新的技术,当然也是功能最强用起来最简单的 (作者:goldenshin 时间:2001-11-05.19:38:08)MFC OLEDB是与ADO实际是同一技术,只是前者更低一层,但更好控制更灵活,是ADO的MF
MFC OLEDB是与ADO实际是同一技术,只是前者更低一层,但更好控制更灵活,是ADO的MFC界面MFC OLEDB是与ADO实际是同一技术,只是前者更低一层,但更好控制更灵活,是ADO的MFC界面 (作者:WuZejin 时间:2001-11-08.20:17:43)
页:
[1]