[中山聚会及国庆献礼] ObjectARX中使用ADO数据库的方法
开了几个夜车(这段时间意外的忙),文章总算写完了,这只是一个ADO编程的入门级文章,希望能起到一个抛砖引玉的作用,希望大家讨论。另外,muzi网友在聚会后能否也写一个关于ARX中使用ODBC数据库的文章?我认为,使用MFC ODBC接口进行数据库编程直接用MFC支持类,不需要#import COM支持库,在ARX动态链接库中引发错误的机会更小,但代码量更大。不知muzi如何看待这两种数据库API?看来秘书长和李兄已经把国庆献礼拿出来了。其他版主 要再接再励才行了。:) 不仅是ADO, 对所有的库的引入,如果在MFC中,强烈建议不用import,而是直接引入. 比如对EXCEL,可以用添加新类的办法,直接选中excel.exe, 就可方便地在ARX中对EXCEL编程了.
我在microsoft的网上看到过一段说明,大意是在三种方法中(还有一种方法是直接用COM的一些函数和接口),Import在MFC中并不是最稳定的,有时有问题. 为什么我按照上面的例子建立的工程,编译时出现这个错误
\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h><BR>Error executing cl.exe.
请问该如何解决阿? 斑竹,你可以指点一二吗? 在StdAfx.h中作如下声明
#include <comdef.h><BR>#import "c:\Program files\common files\system\ado\msado15.dll" \<BR> no_namespace rename("EOF","AdoEOF") <BR>
会出现6个错误,描述如:
f:\gridui\debug\msado15.tlh(169) : error C2011: 'LockTypeEnum' : 'enum' type redefinition
估计是同一个名字空间下的变量冲突,改为声明:
#include <comdef.h><BR>#import "c:\Program files\common files\system\ado\msado15.dll" \<BR>rename_namespace("ARXADO") rename("EOF","AdoEOF") \<BR> rename("EOS","AdoEOS")<BR>
又出现更多错误,连_ConnectionPtr等智能指针都不认识了,我该怎么办呢? 我一直都是使用MFC ODBC接口进行数据库编程直接用MFC支持类,感覺很好,從沒用過其他的,(苦笑) 我顶一个!
希望这样的文章多多!!!多多 把stdafx。h里的 #include <dao.h>的包含文件删掉
是命名空间的冲突 在stdafx.h中确保关闭以下两行
//#include <afxdb.h> // MFC ODBC database classes<BR>//#include <afxdao.h>
页:
[1]
2