ADO和DAO可以混用吗? 我的程序的一部分已经用DAO实现了,现在需要增加网络功能,要用多线程实现,可是DAO不支持多线程,我想在网络线程里面单独使用ADO,结果编译错误,出了一堆重复定义,我现在发现是和DAO的头文件冲突,请问有办法解决吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 回复人: commandconque(马江王) ( ) 信誉:107 2003-11-10 14:27:59 得分:40 我说说我的方法:1、首先在已有的ADO程序中的stdafx.h 文件中加入如下代码: #include <afxdao.h> #import "c:\Program Files\Common Files\System\ado\msado15.dll" rename_namespace("AdoNS")rename("EOF", "adoEOF")添加时应在所有的#include 之后,以确保ADO 的可用 你在完成该步骤后可以试一试,DAO的功能是否可用,如果可用就说明成功了一半。2.这时你的ADO肯定是错误连篇的,你的ADO必须作如下的修改: 你注意上述代码中的“AdoNS”,在所有的ADO的功能函数,功能变量前必须加入AdoNS:: 如果成功,它会自动弹出ADO的所有功能的列表比如原来是 _RecordsetPtr m_pRecordset; 现在必须改成: AdoNS::_RecordsetPtr m_pRecordset; “AdoNS”是你自己在stdafx.h定义的,可以胡乱写,但后面的代码必须以此为统一。 又如自定义的函数Trans2Combox(CComboBox* CtrlBox,_RecordsetPtr Rec,CString field) 必须改写为Trans2Combox(CComboBox* CtrlBox,AdoNS::__RecordsetPtr Rec,CString field)总之,要改写的地方较多,你遇到有问题的地方就改写试一试,看是否需要改写本人摸索了半年才得到的办法。 供大家参考参考 可以如何实现在ADO下使用DAO:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=183803 char * strcpy(char * destStr, char * sourStr) 怎么判断VS2005已安装了SP1? 请问如何在一个web页当中调用vc开发的程序? 打印与打印预览 菜鸟求解数据结构题---递归算法 关于静态成员函数实现多线程的一个问题 请问哪里有侯捷的《effective in c++》中文版下载? 怎么判断用户输入的值在0到9之间? 为什么ShowWindow对最小化的窗口无效呢?(一个主窗口上有几个子窗口,相互可以切换窗口界面,当程序最小化后,通过代码设置计时器来切换界面,发现无效) 我怎样知道程序已经运行?? 帮忙看看VC树型控件的用法 vc类型转换的问题
我说说我的方法:
1、首先在已有的ADO程序中的stdafx.h 文件中加入如下代码:
#include <afxdao.h>
#import "c:\Program Files\Common Files\System\ado\msado15.dll" rename_namespace("AdoNS")rename("EOF", "adoEOF")
添加时应在所有的#include 之后,以确保ADO 的可用
你在完成该步骤后可以试一试,DAO的功能是否可用,如果可用就说明成功了一半。
2.这时你的ADO肯定是错误连篇的,你的ADO必须作如下的修改:
你注意上述代码中的“AdoNS”,在所有的ADO的功能函数,功能变量前必须加入AdoNS::
如果成功,它会自动弹出ADO的所有功能的列表
比如原来是
_RecordsetPtr m_pRecordset;
现在必须改成:
AdoNS::_RecordsetPtr m_pRecordset;
“AdoNS”是你自己在stdafx.h定义的,可以胡乱写,但后面的代码必须以此为统一。
又如自定义的函数
Trans2Combox(CComboBox* CtrlBox,_RecordsetPtr Rec,CString field)
必须改写为
Trans2Combox(CComboBox* CtrlBox,AdoNS::__RecordsetPtr Rec,CString field)
总之,要改写的地方较多,你遇到有问题的地方就改写试一试,看是否需要改写
本人摸索了半年才得到的办法。
供大家参考参考
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=183803