深入CursorAdapter(一),第1张

深入CursorAdapter(一),第2张

大型计算机等级站布置的检查:

CursorAdapter类是VFP 8中最重要的新功能之一,因为它提供了一种简单易用的方式,以统一的接口访问远程数据源。在本月的文章中,Dung Hennig将向您展示CursorAdapter及其工作原理。下个月,我们将学习一些高级用法。

越来越多的VFP程序员开始将他们的数据存储在数据仓库中,而不是像SQL Server或Oracle这样的VFP表中。造成这种情况的原因有很多,包括VFP表的脆弱性(无论是想象的还是真实的)、安全性、数据库容量和通用标准等。微软已经使访问每个版本的非VFP数据变得更加容易。为了鼓励这种趋势,它甚至带来了MSDE(微软数据引擎,SQL Server的免费和平装版)的VFP 7光盘。

然而,访问后端数据库总是比使用VFP表更麻烦,并且有许多机制可以使用:

×××远程视图,基于ODBC连接;

×× SQL直通(SPT)函数,如SQLCONNECT()、SQLEXEC()和SQLDISCONNECT(),也是基于ODBC连接;

×× ActiveX数据对象,简称ADO,向各种数据库引擎的OLE提供者提供了一种面向对象的访问方法;

×× XML,这是一种轻量级的与平台无关的数据传输机制。

如果你曾经使用过这些机制,有一件事你可能已经注意到了:它们每个都是不同的。在这种情况下,你必须一个一个地学习它,并且将现有的应用程序从一种机制改变为另一种机制不是一件简单的工作。

有了新的基本类CursorAdapter,在VFP 8中访问远程数据比过去的版本简单得多。在我看来,CursorAdapter是VFP 8最重要的新功能之一。我认为最棒的是:

×××使用ODBC、ADO和XML变得非常容易,即使你不熟悉这些技术。

无论您选择哪种远程数据源机制,它都提供了统一的访问接口。

从一种机制转换到另一种机制是非常容易的。

这是上面最后一点的一个例子。假设您有一个使用CursorAdapter通过ODBC访问SQL Server数据的应用程序。出于某种原因,您希望改用ADO。这种情况下,只需要改变CursorAdapter的DataSourceType属性,改变与后台数据库的连接,就全部完成了。应用程序的其他部分不需要知道或关心这些事情;无论使用哪种机制,他们只能看到相同的光标。

属性

我们先来看看CursorAdapter的属性、事件和方法。这里不讨论所有的属性,只讨论最重要的。

数据源类型

这个属性是最重要的:它决定了这个类的性能以及如何在其他属性中设置它。可用的选项有“本地”——这意味着使用VFP表——或者“ODBC”、“ADO”或“XML”,这意味着您希望访问远程数据源的方式。

数据源

这是访问数据的方法。当DataSourceType设置为“Native”或“XML”时,VFP将忽略此属性的设置。对于ODBC,请将该属性设置为有效的ODBC连接句柄(这意味着您必须自己管理连接)。在ADO的情况下,DataSource必须是ADO记录集,其ActiveConnection对象必须设置为open ADO Connection对象(您必须再次自己管理这些)。

使用数据源

如果此属性设置为。t .(默认为。f .),可以忽略它的DataSourceType和DataSource属性,因为CursorAdapter会改用DataEnvironment的属性(VFP 8也在DataEnvironment中增加了DataSourceType和DataSource属性)。例如,当您希望数据环境中的所有CursorAdapters使用同一个ODBC连接时,可以将其设置为. t。

选择Cmd

除了XML,这是一个用于获取数据的SQL Select命令。对于XML,它可以是可以转换为游标(使用内部XMLTOCURSOR()调用)的有效XML字符串,也可以是可以返回有效XML字符串的表达式。

CursorSchema

该属性保存游标的数据结构,其格式与使用CREATE CURSOR命令时使用的格式相同。这是一个例子:Cust _ ID C (6),公司C (30),联系人C (30),城市C (25)。虽然也可以设置该属性,并让CursorAdapter通过创建自己的光标来确定该结构,但如果您自己输入,效果会更好。如果CursorSchema为空或不正确,当您打开表单的数据环境时,将弹出一个错误,或者您无法通过将字段从CursorAdapter拖放到表单上来创建控件。幸运的是,VFP自己的CursorAdapter生成器可以为您填充这个属性。

AllowDelete、AllowInsert、AllowUpdate和SendUpdates

这些属性的默认值是。t .,它决定了它们是否可以被删除、插入、更新和更改,以及它们是否应该被发送到数据源。

KeyFieldList、Tables、UpdatableFieldList和UpdateNameList

这些属性的目的与CURSORSETPROP()中使用的那些参数的目的相同。如果希望VFP自动将光标更改提交给数据源,这些属性是必需的。

×× KeyFieldList是以逗号分隔的字段列表(没有别名),这些字段组成了游标的主键。Tables是以逗号分隔的表名列表。
×× UpdatableFieldList是可以更新的以逗号分隔的字段名称列表(没有别名)。
×× UpdateNameList是一个逗号分隔的列表,用于将游标中的字段名与表中的字段名进行匹配。UpdateNameList的格式是这样的:游标field name 1 table . field name 1 table,游标field name 2 table . field name 2 table等等。注意:如果UpdatableFieldList不包含表的主键字段的名称(比如你不希望用户更新这个字段),那么UpdateNameList中仍然需要有这个字段,否则无法更新。


位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 深入CursorAdapter(一)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情