----------------------------------------------------------
Microsoft(R) OLE DB Provider for Jet version 3.52 自述文件
----------------------------------------------------------

(c) 1998 Microsoft Corporation。保留所有权力。

本文档提供了 Microsoft OLE DB Provider for Jet 文档中没有包括的最新或其他的信息。

----
目录
----

1. 产品说明

2. 新特性

3. 技术说明

4. 已知的错误、限制和工作环境

-----------
1. 产品说明
-----------
Microsoft OLE DB Provider for Jet 是数据的本地 OLE DB 提供者，数据以 Microsoft Access 使用的 .mdb 文件
格式存放。使用本地 OLE DB 提供者，可以不再依赖于 Microsoft Access ODBC Driver 来读写 Microsoft Access 
数据库中的数据。

---------
2. 新特性
---------
Microsoft OLE DB Provider for Jet 新版本准许使用与查询中参数标记有关的 ANSI 标准语法。旧版的提供者只支
持由方括号中的参名组成的 Microsoft Jet-专用参数标记语法，其中参数名是可选项。

例如：parameters parm1 text; select * from Table1 WHERE col1 = [parm1];

当参数标记是问号“?”时，新版的提供者也支持 ANSI 语法。例如：...WHERE col1 = ? 

新版的 Microsoft OLE DB Provider for Jet 准许用 ANSI 语法通配符（“%” 和“_”）替代 Jet-专用语法通配符
（“*” 和“?”）。例如，假设有一查询，要求返回所有起始字母为“A”的列的数据。在旧版本中，限制条件被写
为“...WHERE col1 LIKE("A*")”，而在新版中则改为“...WHERE col1 LIKE("A%")”。请注意，如果查询仍使用旧
的、非 ANSI 标准语法，则不再返回相同的行集。

-----------
3. 技术说明
-----------
如果已预先创建了访问 Microsoft Access .mdb 文件的 OLE DB 应用程序，则应用程序使用的是 Microsoft Access 
ODBC Driver。然而，现在可以用 Microsoft OLE DB Provider for the Microsoft Access Jet 数据库引擎来创建更
有效的应用程序。

用 Microsoft OLE DB Provider for Jet 提供的新特性，可以在访问 Microsoft Access 数据库文件时，旁路“打开
数据库连接”(ODBC) 层。这意味着您不需要创建数据源名称 (DSN) 文件，ODBC 需用 DSN 来将数据源映射到基本数
据库软件。 

要连接 Microsoft Access 数据库，必须在您的程序中预先创建和引用 DSN。例如，下例程序用建立与 Microsoft 
Access 数据库的连接：

设置 cnnConn = Server.CreateObject("ADODB.Connection")
cnnConn.Open "DSN=PayRollData;UID=SnrAccnt;pwd=Accnt1"

然而，使用 Microsoft OLE DB Provider for Jet，可以直接访问 Microsoft Access 数据库文件。下列打开数据
库连接不涉及到 DSN：

ADOConnection.Provider = "Microsoft.JET.OLEDB.3.51"
ADOConnection.Properties("user id") = "admin"
ADOConnection.Properties("password") = ""
ADOConnection.Properties("data source") = "d:\payroll\raises.mdb"
ADOConnection.Open

继续支持使用 Microsoft Access ODBC Driver 的应用程序。然而，可以选择将现存应用程序从 Microsoft Access 
ODBC Driver 转换到 Microsoft OLE DB Provider for Jet。   

如果通过 Microsoft OLE DB Provider for Jet 需要访问安全数据库，可能必须设置上述所列的附加信息。要指定
数据库密码（而不是用户密码），需要在 ADO 连接对象（如上所示）上设置属性“Jet OLEDB:Database Password”。
进一步，如果需要指定一特殊系统数据库，则应该使用“Jet OLEDB:System database”。

请注意，Microsoft OLE DB Provider for Jet 中打开数据库的默认方式为只读型式。如果 .mdb 文件是在只读文件
系统中，使用默认设置打开数据库的操作将失败。只能在只读方式下打开这些数据库。

-----------------------------
4. 已知的错误、限制和工作环境
-----------------------------
如果选择转换应用程序，则必须了解两种提供者访问方法之间的不同特性。特别指出，新版的 Microsoft OLE DB 
Provider for Jet 不支持下述特性：

* ODBC 为调用内部函数指定的规范语法。
* 通过 Microsoft Jet 可安装的 ISAMs 访问数据库或文件而不是本地 Microsoft Jet 数据库（例如：Excel、
dBase、Text 等）。
* 创建存储查询的能力，有时也会涉及到存储程序。

可安装的 ISAM 支持

目前尚不支持直接使用 Microsoft OLE DB Provider for Jet 而不是本地 Jet 数据库来访问数据。如果您必须从
应用程序访问外部数据，您能够并应该继续使用 Microsoft OLE DB Provider for ODBC data，直到发布下一个 
Microsoft OLE DB Provider for Jet data 版本。本提供者将对 MDAC 2.1 有效。

存储程序支持

必须首先在 Access 中创建 Microsoft OLE DB Provider for Jet 使用的存储程序 Querydefs。本版程序中，没有
用来直接创建存储程序的程序。


下面列出了 Microsoft OLE DB Provider for Jet 3.52 已知错误。

当改变处于暂挂时，IRowsetUpdate::GetOriginalData 将在新插入行时失败。
--------------------------------------------------------------------
当处于暂挂的改变尚未处理时，IRowsetUpdate::GetOriginalData 将在新插入行时失败。当检索新插入列的原始值
时，Jet 3.5 Engine 本身并不对其进行处理。因此，OLE DB 提供者不能支持此函数。

用 JET 改变“行集属性”主题。
----------------------------
对于 Jet 3.52，为在强制漂移条件下反映返回行集的实际属性，可以改变用来创建行集的预先设置属性。例如，使
用 ICommand::SetProperties 或 IOpenRowset::OpenRowset 将 DBPROP_BOOKMARK 属性设置为 VT_FALSE（与 
DBPROPOPTIONS_REQUIRED 一起），然后取回实际带有书签的行集，他们由强制 Jet 创建行集类型产生。Jet 将以不
同的属性返回行集，而不会在返回行集时完全失败。

这样的实际效果将导致一些 OLEDB API 返回额外的信息。例如，IColumnsInfo::GetColumnsInfo 可能返回不期望的
额外的书签列条目。

