ADO API 参考( ADO 动态属性)

王朝other·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

指定 Recordset 对象的名称。

返回值

返回作为 Recordset 名称的字符串值。

说明

名称在连接期间或在 Recordset 关闭之前持久存在。

Name 属性主要为了用于 Microsoft Data Shaping Service for OLE DB 服务提供者的重构形特性。要参与重构形,名称必须是唯一的。

该属性是只读的,但在创建 Recordset 时可以间接设置。例如,如果使用 SHAPE 命令短语创建 Recordset,并使用“AS”关键字命名别名,则别名将被赋给 Name 属性。如果别名未声明,或别名与现有名称相冲突,则 Name 属性将由 Shape 提供者生成的名称确定。

当要在 SHAPE 命令中引用 Recordset 时,请使用 Name 属性,但由于它是由 MSDataShape 生成的,所以用户不知道其名称。这时,应使用 Name 属性返回的字符串来组成命令,以此生成 SHAPE 命令。

当 CursorLocation 属性设置为 adUseClient 时,Name 是追加到 Recordset 对象的 Properties 集合中的动态属性。

Unique Table、Unique Schema、Unique Catalog 属性 — 动态

使用户能够直接控制在通过对多个基本表执行 JOIN 操所得到的 Recordset 中的特定基本表的修改。

Unique Table 指定一个允许进行更新、插入和删除的基本表的名称。

Unique Schema 指定模式,即表的所有者的名称。

Unique Catalog 指定目录,即包含表的数据库的名称。

设置和返回值

设置或返回字符串值,该值是表、模式或目录的名称。

说明

所要的基本表通过其目录、模式和表名唯一标识。设置 Unique Table 属性后,可使用 Unique Schema 或 Unique Catalog 属性的值查找基本表。在设置 Unique Table 属性之前需要设置 Unique Schema 和 Unique Catalog 属性的其中一个属性或同时设置两个属性,但这不是必须的。

Unique Table 的主键被用作整个 Recordset 的主键。该键可用于任何需要主键的方法。

设置 Unique Table 后,AddNew、Delete、Resync、Update 和 UpdateBatch 方法只能影响到所命名的表。

如果找不到唯一的基本表,将出现运行时错误。

当把 CursorLocation 属性设置为 adUseClient 时,这些动态属性均被追加到 Recordset 对象的 Properties 集合中。

Resync Command 属性 — 动态

指定用户提供的命令字符串,Resync 方法发出该字符串用于刷新在由 Unique Table 动态属性所命名的表中的数据。

设置和返回值

设置或返回字符串,是命令字符串。

说明

Recordset 对象是对多个基本表执行 JION 操作的结果。受影响的行取决于 Resync 方法的 AffectRecords 参数。如果没有设置 Unique Table 和 Resync Command 属性,将执行标准的 Resync 方法。

Resync Command 属性的命令字符串是唯一标识正在被刷新的行的参数化命令或存储过程,并返回包含相同列的数目和顺序的单个行作为要刷新的行。命令字符串包含在 Unique Table 中每个主键列的参数,否则将返回运行时错误。参数将以要刷新行的主键值自动填充。

两个基于 SQL 的范例如下:

1) Recordset 由命令定义:

SELECT * FROM Customers JOIN Orders ON

Customers.CustomerID = Orders.CustomerID

WHERE city = ‘Seattle’

ORDER BY CustomerID

Resync Command 属性设置为:

"SELECT * FROM

(SELECT * FROM Customers JOIN Orders

ON Customers.CustomerID = Orders.CustomerID

city = ‘Seattle’ ORDER BY CustomerID)

WHERE Orders.OrderID = ?"

Unique Table 为 Orders,其主键 OrderID 被参数化。子选择提供简单的方法,在程序中确保返回的列具有与使用原始命令相同的数目和顺序。

2) Recordset 由存储过程定义:

CREATE PROC Custorders @CustomerID char(5) AS

SELECT * FROM Customers JOIN Orders ON

Customers.CustomerID = Orders.CustomerID

WHERE Customers.CustomerID = @CustomerID

Resync 方法应该执行如下存储过程:

CREATE PROC CustordersResync @ordid int AS

SELECT * FROM Customers JOIN Orders ON

Customers.CustomerID = Orders.CustomerID

WHERE Orders.ordid = @ordid

Resync Command 属性设置为:

"{call CustordersResync (?)}"

又一次,Unique Table 为 Orders,其主键 OrderID 被参数化。

当把 CursorLocation 属性设置为 adUseClient 时,Resync Command 是追加到 Recordset 对象的 Properties 集合的动态属性。

Update Resync 属性 — 动态

指定在 UpdateBatch 方法之后是否进行隐式 Resync 方法操作,以及如果这样,该操作的范围。

设置和返回值

设置或返回如下 CEResyncEnum 值之一:

常量

说明

adResyncNone

不调用 Resync。

AdResyncAutoIncrement

(默认)对所有成功插入的行调用 Resync,包括它们自动递加列的值。

adResyncConflicts

对所有因并发冲突导致更新或删除操作失败的行调用 Resync。

adResyncUpdates

对所有成功更新的行调用 Resync。

adResyncInserts

对所有成功插入的行调用 Resync,包括它们相同列的值。

adResyncAll

对出现挂起更改的每行调用 Resync。

说明

只有已设置 Unique Table 动态属性,该属性才可以应用。

adResyncAutoIncrement 和 adResyncConflicts 可以同时使用。adResyncAll、adResyncUpdates、adResyncInserts 和 adResyncConflicts 可以同时使用。

常量 adResyncConflicts 将 resync 值作为基本值存储,但不覆盖挂起的更改。

当把 CursorLocation 属性设置为 adUseClient 时,Update Resync 是追加到 Recordset 对象 Properties 集合的动态属性。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航