自 mfc 数据访问对象 (dao) 数据库类在 1995 年 10 月发布以来,mfc 数据库开发人员就已开始考虑该使用哪个类集。
odbc 数据库类的数据源选择 LN5l=cee@
8zm 7
d9j$Qb
当您用 mfc odbc 类编写应用程序时,可以连接到任何数据源(只要您有它的 odbc 驱动程序)。odbc 驱动程序管理器和 odbc 驱动程序的操作在您用这些类编写的应用程序中是透明的,但个别驱动程序性能会影响应用程序的功能。 ?&vogn\3
}baGMyJ8sR
le/42
通常,mfc 动态集(但并非只向前滚动的记录集)要求 odbc 驱动程序具有 2 级 api 一致性。如果数据源的驱动程序符合 1 级 api 设置,您就仍可以使用可更新且只读的快照与只向前滚动的记录集,但不能使用动态集。然而,如果 1 级驱动程序支持扩展的提取和键集驱动游标,它就可以支持动态集。 Vitm&qM
QhJyiHYZ
yMwR
odbc desktop driver pack 3.0 版支持 2 级 odbc api 调用 sqlextendedfetch。 k I[]388~
_{9}5$J
3MDa)>~?
appwizard 和 classwizard 会自动将数据源的列静态地绑定到您应用程序的成员变量中。这是在您应用程序与数据源之间建立连接的最简单的方法,但不是最灵活的方法。可以用类 cfieldexchange 将自定义的记录字段交换 (rfx) 调用添加到您的应用程序中。请参见“technical note 43:rfx routines”,以获取更多信息。 9\wKX>[o
F<=p5ie
s"pS1n;o0
另外,还可以考虑动态地绑定数据库的列。在最普通的级别中可执行下列步骤: #tuH?8;=
Cb3!w{h
2 0]Dm9O
构造您的主要记录集对象。然后,可以将指针传递给一个打开的 cdatabase 对象,或者也可以用其它方法向列记录集提供连接信息。 {M9Z($#
k 0 4`n:
执行一些步骤,动态地添加列。 kd<EO8]
28PyFcrQ&:
打开您的主要记录集。 P`Ux==q+
&`=+\'_
1 |{bHI/w
K{(W49N^r
记录集会选择记录,并使用记录字段交换 (rfx) 绑定“静态”列(映射到记录集字段数据成员的列)和动态列(映射到您分配的额外存储的列)。 e>nh? C
P!qhq[0,o5
FY\[+VA&
dao 数据库类的数据源选项 F +z_rR
/3w A=Wdu
MpmE<F#
现在我们要谈的是您可以用 dao 数据库类连接的数据源、列的静态绑定、列的动态绑定,以及记录的双缓冲。 nvO)\*
5wG
_cvx_m;S
既然 microsoft access 数据库是 jet 的本机数据库,您自然就可以以最快速度访问它们。microsoft access 97 具有的数据库格式是 dao 3.5 版的本机数据库格式。如果使用 microsoft access 97 数据库,将获得最为快速的性能。 ;uvJ TM7
rj'l
?G>k^p 5p
jet 使用单独的 dll 提供对 microsoft jet 1.x 和 2.0 版数据库的访问权限。存储引擎和格式完全是用 microsoft jet 3.0 版修订的。假如更改之处很多,microsoft jet 3.0 版就会将 2.0 版数据库视为外部 isam,这会影响性能。因此,这也是促使您应该考虑将 microsoft access 数据库升级的合理原因。 nX0^D2k\
b,@[AGwa%e
E; Kz*H
gWq&;n;\
另外,您还可以访问可安装的 isam 数据库和 odbc 数据源。isam(基于索引的连续访问方法)数据库,如 foxpro 和 dbase,可以直接打开,也可以链接到 access 数据库以实现最佳性能。下面是 dao 可以访问的数据源的列表: IV6p
]goqm4
1#J~ PC
tDLO0JFlc
=ot"8E qK
microsoft foxpro 的 2.0、2.5 和 2.6 版。在 3.0 版中可以导入与导出数据,但不能创建对象。 yI l*yN
d ZaIoR<
dbase iii、dbase iv 和 dbase 5.0 g,umoGJ
:_"Evv?
paradox 的 3.x、4.x 和 5.x 版 MIo$g Gz
7EKRVg>
btrieve 的 5.1x 和 6.0 版 JICmM
Wr&mCZ"{
microsoft excel 的 3.0、4.0、5.0、7.0 和 8.0 版工作表 vm_!# o
}biV`%CO
lotus wks、wk1、wk3、wk4 电子表格 s@M.njz17m
)M~|4m
文本文件 N&uK_MG
l\"i$5Mf
LImz?X!1
2G }]whK
请记住,microsoft access 的 1.x、2.0 和 7.0 版数据库都属于此类别。 Wa! E5e
fV7&HK[
|-?vuS*H
可以通过 odbc 访问 odbc 数据源,如 sql server 和 oracle,因此您可以选择针对这些数据源使用 dao。一个 odbc 数据源可以来自任何 dbms,只要您拥有该 dbms 的适当的 odbc 驱动程序。对于 visual c++ 2.0 版或更高版本,您需要 32 位的 odbc 驱动程序(但 win32 除外,在 win32 中需要 16 位的 odbc 驱动程序)。下面是此版本 visual c++ 所包含的 odbc 驱动程序列表。 L&nz|J$8
PEGtiP(}D
b,5Y:P.hvn
Lc| C|'9,
_cYyDc:dn
sql server P KuRoY
`lMKbX-
microsoft access ow 3UH@%
q i'1?I`
microsoft foxpro `P9G&q>:
rK7vON>A
microsoft excel >~(&o)
2cQrMtBE
dbase G|w;s#[
$9^/`E
paradox ,GY@ S@8
XNe\NKjC
文本文件 n2U9`[_)
i:kH)<f-z
"^*$V ? /
J*V"6u>