当前位置:学学看123知识中心电脑教学数据库教程Microsoft SQL Server 2000 分布式查询:OLE DB 连接» 正文

Microsoft SQL Server 2000 分布式查询:OLE DB 连接

[06-11 18:18:55]   来源:http://www.xxk123.com  数据库教程   阅读:8231

导读:下列行集属性是在被更新的表中打开的行集所必需的:DBPROP_IRowsetLocate、DBPROP_IRowsetChange 和 DBPROP_BOOKMARKS。将DBPROP_UPDATABILITY 行集属性设置为 DBPROPVAL_UP_CHANGE 还是 DBPROPVAL_UP_DELETE 取决于执行的操作是 UPDATE 还是 DELETE。以下是在提供程序上运行 UPDATE 或 DELETE 操作的高级步骤: SQL Server 通过 IOpenRowset 接口打开基本表行集。SQL Server 需要行集上的上述属性。SQL Server 确定符合条件的将被更新或删除的行。SQL Server 通过 IRowsetLocate 接口使用书签在符合条件的行中进行定位。使用 IRowsetChange::SetData(用于 UPDATE 操作)或 IRowsetChange::DeleteRows(用于 DELETE 操作)在符合条件的行上作出所需的更改。 INSERT 语句支持远程表上的 INSERT 语句的条件要比 UPDATE

Microsoft SQL Server 2000 分布式查询:OLE DB 连接,标签:sql数据库教程,access数据库教程,http://www.xxk123.com

下列行集属性是在被更新的表中打开的行集所必需的:DBPROP_IRowsetLocate、DBPROP_IRowsetChange 和 DBPROP_BOOKMARKS。将DBPROP_UPDATABILITY 行集属性设置为 DBPROPVAL_UP_CHANGE 还是 DBPROPVAL_UP_DELETE 取决于执行的操作是 UPDATE 还是 DELETE。

以下是在提供程序上运行 UPDATE 或 DELETE 操作的高级步骤:

  1. SQL Server 通过 IOpenRowset 接口打开基本表行集。SQL Server 需要行集上的上述属性。

  2. SQL Server 确定符合条件的将被更新或删除的行。

  3. SQL Server 通过 IRowsetLocate 接口使用书签在符合条件的行中进行定位。

  4. 使用 IRowsetChange::SetData(用于 UPDATE 操作)或 IRowsetChange::DeleteRows(用于 DELETE 操作)在符合条件的行上作出所需的更改。

INSERT 语句

支持远程表上的 INSERT 语句的条件要比 UPDATE 和 DELETE 语句宽松:

  • 提供程序必须支持在目的基本表中的行集上的 IRowsetChange::InsertRow 操作。

  • 如果提供程序不支持 ITransactionLocal,则仅在链接服务器设置了 Non-transacted updates 选项且语句不在用户事务中时,才允许使用 INSERT 语句。

  • 如果提供程序不支持 ITransactionJoin,只有不在用户事务中时才允许 INSERT 语句。

SQL Server 使用 IOpenRowset::OpenRowset 打开基本表的行集并调用 IRowsetChange::InsertRow 将新的行插入基本行集中。

传递查询

除了赋予 ICommand 的命令文本是用户提交的(不由 SQL Server 解释)命令字符串外,本方案和“远程查询”方案类似。SQL Server 在调用 ICommandText::SetCommandText 时使用 DBGUID_DEFAULT 作为文字标识符。DBGUID_DEFAULT 指出提供程序应使用它的默认语法。如果该命令文本返回多个结果集(例如,如果该命令调用一个返回多个结果集的存储过程),SQL Server 将只使用命令返回的第一个结果集。

有关 SQL Server 使用的所有 OLE DB 接口的列表,请参阅附录 A:SQL Server 采用的 OLE DB 接口。

总结

Microsoft SQL Server 2000 为访问异类数据源中的数据提供了最可靠的一套工具。通过了解 SQL Server 提供的 OLE-DB 接口,开发人员能够更好地控制和完善分布式查询。

附录 A:SQL Server 采用的 OLE DB 接口

下表(表 4)列出了 SQL Server 使用的全部 OLE DB 接口。“必要”列说明该接口是 SQL Server 所需的 OLE DB 功能中最基本的部分,还是可选的。如果一个给定的接口未标记为必要,SQL Server 仍然能够访问提供程序,但是某些特殊的 SQL Server 功能或优化功能不能用于该提供程序。

对于可选接口,“方案”列指定了使用该接口的方案(是六个方案中的一个或多个)。例如,基本表行集上的 IRowsetChange 接口是可选接口;该接口用于 UPDATE 和 DELETE 语句方案以及 INSERT 语句方案中。如果该接口不被支持,则对提供程序的 UPDATE、DELETE 和 INSERT 语句也不能被支持。其他一些可选接口的“方案”列中标记为“性能”,表示该接口能够提高性能。例如,如果不支持 IDBSchemaRowset 接口,SQL Server 必须打开行集两次:一次获得元数据,另一次执行查询。通过支持 IDBSchemaRowset,将提高 SQL Server 的性能。

表 4:SQL Server 采用的接口

对象接口必要注释方案Data Source 对象IDBInitialize是初始化并设置数据和安全上下文。  IDBCreateSession是创建 DB 会话对象。  IDBProperties是获得有关提供程序功能的信息,设置初始化属性,必要属性:DBPROP_INIT_TIMEOUT。  IDBInfo否获得引用文字、目录、名称、部分、分隔符、字符等等。远程查询。DB Session 对象IDBSchemaRowset否获得表/列的元数据。
需要的行集:
TABLES、COLUMNS、PROVIDER_TYPES;
其他可能用到的行集:INDEXES、TABLE_STATISTICS。性能,索引访问。 IOpenRowset是打开表、索引和柱状图上的行集。  IGetDataSource是用于从 DB 会话对象返回到 DSO。  IDBCreateCommand否用于为支持查询的提供程序创建命令对象(查询)。远程查询,传递查询。 ITransactionLocal否用于事务方式的更新。UPDATE、DELETE 和 INSERT 语句。 ITransactionJoin否用于分布式事务支持。如果在用户事务中,则必需有 UPDATE、DELETE 和 INSERT 语句。Rowset 对象IRowset是扫描行。  IAccessor是绑定到行集中的列。  IColumnsInfo是获得行集中的列信息。  IRowsetInfo是获得行集属性的信息。  IRowsetLocate否UPDATE/DELETE 操作和基于索引的查找所需;用于使用书签来查找行。索引访问,UPDATE 和 DELETE 语句。 IRowsetChange否对行集进行 INSERTS/UPDATES/

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]  下一页


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程
前一篇:关于ORACLE连接池

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10