可以存取数据库集合对象,例如TableDefs、Fields、Indexes及QueryDefs 具有真正的事务处理能力 , 包括启动事务 ( Begintrans 、提交事务(CommitTrans及回滚事务(Rollback
2.2 缺点
比使用数据控制项的方法编码量较大 只能进行间接的错误处理和错误恢复 对每个数据库操作没有细粒度的控制
对结果集和包含结果集的内丰资源的操作受到限制 同直接使用ODBC2.0API函数的方法相比性能较低 2.3 应用
应用程序需要在执行期间动态地建立表、字段及索引.
应用程序涉及同步更新几张表(但在逻辑上保持一致性的复杂事务
应用程序使用结果集而不是Dynaset的窗体(FORMS,例如Snapshots或Tables,这里是设计要考虑的关键
应用程序的表非常大,多于1000条记录
应用程序具有复杂的数据输入/输出项,它涉及许多内部相关的字段并且包括数据库参照完整性或一致性规则
应用程序需要执行一些额外的操作和对结果集的查询后处理, 尤其是需要 很高的数据格式化显示
应用程序需要利用复杂的ODBC管理功能以选择、配置、校验及建立各种数据源
应用程序需要在执行期间“显示”数据库的基本结构 应用程序需要使用复杂的多码索引方式来检索或更新记录 3 直接调用ODBC2.0API 3.1 优点
可以直接参与结果集的开发、管理及规范化
对结果集游标提供了更多的控制,并且提供了更多的游标类型和执行动作 能够确定ODBC驱动程序及SQL的一致性级别 可以更好地控制Windows的执行调度及资源利用
其他方面同其他方法差不多,因此这种方法很可能具有最好的性能 3.2 缺点
较其他两种方法需要大量的代码
代码复杂并且要求程序员具有编制API调用的经验
在网络上Visual Basic运行期间库的错误处理缺乏安全性,因此代码运行期间出现的错误所造成的后果会非常严重
3.3 应用
如果系统环境为客户机/服务器模式下的大规模多用户环境,那么应用程序必须都能够准确地解决可能出现的系统错误和失败
应用程序强调资源使用,这里如何对内存、网络服务器资源进行直接控制是首要的考虑因素
应用程序使用超大规模数据库,例如数据库表可能包含几万或几十万条记录计算机系统中的任何软件,都是由大大小小的各种软件组成部分构成,各自按照特定的算法来实现,算法的好坏直接决定所实现软件性能的优劣。用什么方法来设计算法,所设计算法需要什么样的资源,需要多少运行时间、多少存储空间,如何判定一个算法的好坏,在实现一个软件时,都是必须予以解决的。计算机系统中的操作系统、语言编译系统、数据库管理系统以及各种各样的计算机应用系统中的软件,都必须用一个个具体的算法来实现。因此,算法设计与分析是计算机科学与技术的一个核心问题。
算法是解题的步骤,我们可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是程序设计的技术问题。算法和程序之间存在密切的关系。算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述。制定一个算法,一般要经过设计、确认、分析、编码、测试、调试、计时等阶段。对算法的学习包括五个方面的内容:①设计算法。算法设计工作是不可能完全自动化的,应学习了解已经被实践证明是有用的一些基本的算法设计方法,这些基本的设计方法不仅适用于计算机科学,而且适用于电气工程、运筹学等领域;②表示算法。描述算法的方法有多种形式,例如自然语言和算法语言,各自有适用的环境和特点;③确认算法。算法确认的目的是使人们确信这一算法能够正确无误地工作,即该算法具有可计算性。正确的算法用计算机算法语言描述,构成计算机程序,
计算机程序在计算机上运行,得到算法运算的结果;④ 分析算法。算法分析是 对一个算法需要多少计算时间和存储空间作定量的分析。 分析算法可以预测这一 算法适合在什么样的环境中有效地运行, 对解决同一问题的不同算法的有效性
作 出比较;⑤ 验证算法。用计算机语言描述的算法是否可计算、有效合理,须对 程序进行测试,测试程序的工作由调试和作时空分布图组成。 而算法具有一定的特性,它包括:① 确定性。算法的每一种运算必须有确 定的意义,该种运算应执行何种动作应无二义性,目的明确;② 能行性。要求 算法中有待实现的运算都是基本的, 每种运算至少在原理上能由人用纸和笔在有 限的时间内完成;③ 输入。一个算法有 0 个或多个输入,在算法运算开始之前 给出算法所需数据的初值,这些输入取自特定的对象集合;④ 输出。作为算法 运算的结果, 一个算法产生一个或多个输出, 输出是同输入有某种特定关系的量; ⑤ 有穷性。一个算法总是在执行了有穷步的运算后终止,即该算法是可达的。 满足前四个特性的一组规则不能称为算法,只能称为计算过程,操作系统是计算 过程的一个例子,操作系统用来管理计算机资源,控制作业的运行,没有作业运 行时,计算过程并不停止,而是处于等待状态。 算法的复杂性是算法效率的度量,在评价算法性能时,复杂性是一个重要的 依据。 算法的复杂性的程度与运行该算法所需要的计算机资源的多少有关,所需 要的资源越多,表明该算法的复杂性越高;所需要的资源越少,表明该算法的复 杂性越低。 计算机的资源, 最重要的是运算所需的时间和存储程序和数据所需的空间资 源,算法的复杂性有时间复杂性和空间复杂性之分。 算法在计算机上执行运算, 需要一定的存储空间存放描述算法的程序和算法 所需的数据, 计算机完成运算任务需要一定的时间。根据不同的算法写出的程序 放在计算机上运算时, 所需要的时间和空间是不同的,算法的复杂性是对算法运 算所需时间和空间的一种度量。 不同的计算机其运算速度相差很大,在衡量一个 算法的复杂性要注意到这一点。 对于任意给定的问题, 设计出复杂性尽可能低的算法是在设计算法时考虑的 一个重要目标。另外,当给定的问题已有多种算法时,选择其中复杂性最低者, 是在选用算法时应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计 或选用有着重要的指导意义和实用价值。