在利用ado连接数据库之前,需要做一些准备
8 c/ T& g- O$ }0 t ?& v# M, c& ?% b
6 p. E3 X' q% V+ c1 L9 H& T 1.用#import指令引入ADO类型库
& G: a% H' u$ g9 L1 a, S$ U- s
: v [, N% R. }" U1 H( t 我们在stdafx.h中加入如下语句:) s+ o2 C: J% C
" H9 F/ s% c' A #import “c:program filescommon filessystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”) .
$ N7 N* u! A. u
4 G1 h9 ^, Q) ^0 |/ R( ? 这一语句有何作用呢?其最终作用同我们熟悉的#i nclude类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。% j& D4 x2 q {. j( k7 }
5 M" w% V5 M) T0 j7 p& E 几点说明:! i0 j- _$ K' R7 U/ I/ n5 [
; N: h) n4 C9 M) v
(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改
8 B5 {- x2 }4 C, `5 n( e2 J9 x8 A3 X) d
(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
0 v W3 U0 x; c1 Q# g0 S m) K* g$ N3 n2 Y* k H
2、初始化OLE/COM库环境! x- J; g7 [( U
$ ^8 ^# E8 J1 W- Q& G 必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
' A/ J& q3 p6 Y6 d; r3 S2 T6 n, M1 Y/ f3 g4 r; `+ S
BOOL CMyAdoTestApp::InitInstance()
$ J- |* u5 o" G) W2 I1 o+ K0 H( z: v# [: ]
{: J$ R& g- p" O1 w+ g j0 I8 m
# H6 w9 ?' j0 E0 l' q8 q" b
if(!AfxOleInit())//这就是初始化COM库
. `5 w9 @( Q! C$ [2 s- ~
# P+ o" K" Z7 R. x+ A {
& ^& O8 l) H! Z0 Z
}% B7 s# g# { AfxMessageBox(“OLE初始化出错!”);0 d' H1 Z' w0 D1 a
s* H$ b2 W* K% A/ H% |
return FALSE;. Y- y% A5 t( f* x8 r- I
3 {3 H$ v- ^6 n7 I/ [% c }
" s, j9 l) r1 f4 x
7 Q* T7 m$ m+ V s8 Z- F } |