自 mfc 数据访问对象 (dao) 数据库类在 1995 年 10 月发布以来,mfc 数据库开发人员就已开始考虑该使用哪个类集。
自 mfc 数据访问对象 (dao) 数据库类在 1995 年 10 月发布以来,mfc 数据库开发人员就已开始考虑该使用哪个类集。本白皮书并不力图用常规术语回答此问题。相反,这里要强调的是对各种选择进行检查,以便您(即开发人) VDQBmCY}7
D#c6n2+,
自 mfc 数据访问对象 (dao) 数据库类在 1995 年 10 月发布以来,mfc 数据库开发人员就已开始考虑该使用哪个类集。本白皮书并不力图用常规术语回答此问题。相反,这里要强调的是对各种选择进行检查,以便您(即开发人员)可以确定每种情况最适合使用哪个 mfc 数据库类集。 0\2`95.>]
::a[ nM
-P+ba7fwK
大多数 mfc 开发人员都熟悉开放式数据库连接 (odbc) 数据库类 - 它们早在三年半以前就出现了。在 mfc 4.2 中,对这些类有一些重要的改进。 +83G5 vGo
xYvvy3n5|
mCVOvRN.ou
身为 c++ 开发人员,您可能不熟悉 dao,因为到目前为止它还只可用于 microsoft access 和 visual basic® 程序设计系统。如果您熟悉 dao,就必须了解:dao 在 mfc 中的实现颇有不同,但包罗广泛。 l%3*V-k0
""aHuh_
75:K^(-A
了解 mfc odbc 类的开发人员必须知道:虽然 mfc dao 类比 odbc 类功能性更强,但 dao 类不能代替它们。 p%*z|o
krj<[X_10
^#xFwzm
对于那些不怎么熟悉 mfc 的人,我想提醒一句:mfc 有一个适用于各种数据库类的设计原则。 %NdGC*3t^u
"`Rfw}*=Y
pee6pv:
mfc 像一张薄薄的包装纸那样,封装 windows® 操作系统 api,提供您想要的 c++ 性能,同时提供您需要的抽象概念。当基础 api 具有实际意义时,向其添加值。可是多数时候 mfc 力图保持不为人触及。 1~8^g{T,
ZK2im5t
O8)hNfm
就如 mfc 封装更复杂的 api 一样,数据库类也封装更复杂的技术。因为 mfc 可以在 intel、unix 和 alpha 之间进行移值,所以数据库应用程序解决方案也是可移值的。 5ma0;3(O
l']"-q-
DXIrw[
我们与 microsoft access、visual basic 使用相同的记录集模型,因此,已经使用那些产品的开发人员不必学习新的范例。另外,两个类集的体系结构基本相同,使用其中一个类集的开发人员可以轻松地切换到另一个类集并使用它。 L'TRS
2c;)weUm2
) 7eX.}
mfc 数据库类 *1],G#wn|
H11!yYgm
~ nh6'
自从 1.5 版之后,mfc 中就已经包含 odbc 数据库类。visual c++ 2.0 版提供了含有相同类的 32 位版本。这些类基于一个工业认可标准,并已得到广泛应用,且因其 odbc 具有可移植性而受到其它数据库开发选择方案的青睐。这种可移植性是指能够将许多 odbc 数据源与用这些类创建的应用程序一起使用。近来的性能改进使得 odbc 数据库类成为一个吸引人的选择方案。 ?O0twn4q7
O~ZW (]7
B} N8)z8
在多数情况下,mfc 4.0 中的 dao 数据库类允许您直接访问桌面数据源而无须使用 odbc。dao 数据库类所具有的同时打开多个数据库类型的能力、使用多数据源的能力以及数据定义语言能力,使其成为重要的开发选择方案。 m.%BS WA/
90AR3E)
Y;2l^@
现在,您已经准备好提出这个问题,自己应使用哪个数据库类集合。如果您所提供的有关自己项目的信息不多,就很难确定这个问题的答案。但是,第一件要考虑的事情是您使用什么数据源。如果您通常使用桌面数据,我们鼓励您考虑 mfc dao 数据库类,因为您将会发现它们极为有效且功能强大。如果您主要使用 odbc(基于服务器)的数据,则使用基于 odbc 的类会使您项目的进展更富成效。 /L.'S"I_/Y
W$V"=
O7q.' \
其它考虑事项包括网络种类、可伸缩性要求,以及速度是否是最重要的因素。最好是用您认为工作得最好的数据库类集让应用程序保持原型。可以进行一些基准测试,以确定您的最佳性能选择。 FZeKfwD_
\N}_,a&
Hco/!p*L
真正的决定权在您 "_s@LOhtL
pGo f@z|
] ax3A
您可用来创建数据库应用程序的选项集合很大。它实际是完整的一系列选项,一端是桌面数据库应用程序,另一端是严格的客户/服务器数据库应用程序。仅有的两种看似明显的选择可能是:在 microsoft access 97 mdb 数据中使用 mfc dao 数据库类,而在 microsoft sql server ™ 6.5 中使用 mfc odbc 数据库类。这两种组合主要是互相配合使用的,均非常有效。但您可能已对这些选择有所了解,其它情况又该如何呢? ,0RYmoI/
8 NRr5T
C['(xXu s
简要地说,以下是您赖以决策的过程: 1Pi KIp
+wv r,
EJnY9x
确定数据源需求 K R_vqW
c9#mMa
0PqUl
您需要的数据库有多大? 一次会有多人需要访问数据吗? 有时,其余的大多数步骤均取决于您选择的数据源。 4MGBh ^
4*R|-8{
hm ") ;#
确定接口需求 zMkeY@!6n
}L^eL!
G.S$J6-`~
如果您需要的接口有大量的用户输入(如用户可以设计自己的查询),那么在调整和分发数据库(一个或多个)时就必须要慎重。例如,如果需要用变化不大的数据填充列表框,并且已选择基于服务器的数据源,则将通常不变化的数据存储在本地而非服务器上,是一种有意义的做法。 5: :c X
!k0Eo0
ZZH #qr<
确定连接性需求 %R $#L/
fcn wu\J\
IvGe"
目前使用的网络协议有很多种,每种协议都对通过网络传送的数据各有不同影响。关于网络的讨论不是本白皮书份内之事,但您需要了解如何优化自己的数据库应用程序,以避免遇到网络的数据陷阱。 X$ Hw^)bs
X,S>R!9
s]F-wO=/
选择适当的工具(一个或多个) mw=j]%M"/
/!$> t
{SfG}r-
microsoft 为数据库开发人员提供了多种可选择的工具(microsoft access、visual basic、visual basic enterprise、visual c++/mfc 以及 sql server),在某些情况下它们的功能略有重叠。本白皮书旨在讨论 visual c++/mfc 选项。但如果您还未考虑其它选项,应该也对它们稍加了解。 iGA:n-328
1y% n
k{RioJ AO
在实施前保持原型 _O8R\
%@i[Wu4a
E-('k^
在本白皮书中您将数次看到此陈述,因为它很重要。您可能已做了很好的选择,但除非您的解决方案真的起了作用,否则工作就不算完成! 5CT'bkOk%
;n t&H ~
>8y'U!,
此外,关于本白皮书,我们假设您想了解的是 mfc 的数据库类。我们不妨尽可能多地检查一些选择方案,以便您认可您想为自己的第一个原型采用的指导。 MvKL"
KC|M=SQ
Lqun6$QD|
mfc odbc 数据库类使用 microsoft access 和 visual basic 中的记录集模型。您可以用内置于类中的成员函数对记录进行筛选、分类、滚动以及其它处理。基础 odbc 驱动程序会影响特殊应用程序的功能。因此,若要使可移植性更强,您的应用程序就必须更具有通用性,或者必须依赖于更低级别的 odbc 功能。如有必要,可以直接调用 odbc,以完成特殊任务。现在,让我们检查该集合中的单个类。 41ZY=!BcPO
<> iI!kg
OTLD.;D
就象使用 mfc 那样,必要时可以调用基础 api(在此情况下为 odbc)。 ukQo,S