在利用ado连接数据库之前,需要做一些准备
, ]% g# | J& U; k2 N7 t5 {2 U7 _/ ~: Y- w
1.用#import指令引入ADO类型库
* ^3 {2 C/ y) y- \, @' C! ? E% v# Y M: e3 R+ p+ p: v; L( e
我们在stdafx.h中加入如下语句:/ ^( s: c4 I! B3 F) \5 Q
4 e; p* o. D* R' C( T$ S7 e- x #import “c:program filescommon filessystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”) .
. X6 I+ [2 p- Z8 J- p( m/ I, v3 u; e- q
这一语句有何作用呢?其最终作用同我们熟悉的#i nclude类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。
7 Y6 }# a d. x" F' ^- \( s; \0 N6 h7 U+ f2 L. u9 ^
几点说明:
7 C, i: }( m' ? |7 z* P8 Y
`7 }: H0 ]) {9 I7 { (1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改
+ b! _4 p) D6 [6 v- A/ W5 Y# e5 F. X! P) r6 F& W6 ^
(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned) G7 p+ P1 f* q, G) K3 r
0 {* O: W9 {/ U6 Q" a6 \7 b
2、初始化OLE/COM库环境
t& K3 A# x8 C$ n& E& G
4 ^/ D1 V* ^) s4 c( H. V0 D 必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
( g- S0 ^7 b) ~5 u, Y
5 d& l$ w: G2 q) c9 A r BOOL CMyAdoTestApp::InitInstance()
9 \5 H' o) [+ A1 T
' w* I1 i' [# p { @% e: v; {( e" f% i3 e: _
; d9 E& ^/ E- G: G8 m. V' `8 c if(!AfxOleInit())//这就是初始化COM库
7 p. D% `8 z9 y, d& I) @
' d \1 I9 n+ b2 B {; s8 f+ e& g/ p1 S; X
3 v9 K& B) S# e) C m4 a" {4 j AfxMessageBox(“OLE初始化出错!”);! I& g. X5 p: M$ d5 ~- F
# r4 U/ L7 g9 v$ J5 }
return FALSE;. g- ]& g7 o7 ~, O9 \, h) d
: n' g# d9 d! ]% C e0 @0 A }5 {/ z# j; K" n) W: m
7 a! E, ?4 r* n, X8 ^
} |