---------------------------------------------------------
Microsoft(R) Data Link API version 2.0 自述文件
---------------------------------------------------------

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

本文档提供了 Microsoft Data Link API 文档中没有包括的最新或其他的信息。

----
目录
----

1. 产品说明

2. 新特性

3. 技术说明

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

-----------
1. 产品说明
-----------
Microsoft Data Link API 为普通用户提供了定义和管理连接 OLE DB 数据源的接口。也可以用应用程序程序接口 Data Link API 调用
用户接口。

可以将连接信息保存到数据链接文件 (.udl)。然后可以通过“数据链接属性”页修改这些文件，应用程序使用这些文件来创建各种 
OLE DB 数据存储的连接。Data Link API 向应用程序提供选择、加载或保存 .udl 文件的能力。

当执行 OLE DB 数据存储的特别连接时，应用程序可以使用管理 .udl 文件中连接信息的相同的用户接口，来获得用户的连接信息。Data 
Link API 允许应用程序从现存的 OLE DB 数据源对象获得连接信息的字符串版本，从现存连接字符串创建数据源对象，或使用“数据链接
”对话框编辑未初始化的 OLE DB 数据源对象的连接属性。

---------
2. 新特性
---------
Microsoft Data Link API 是 MDAC 2.0 Core Component 的新特性。

-----------
3. 技术说明
-----------

对旧版本的改变
--------------
已发布的 Visual Studio(TM) 98 beta 2 中包含的 Data Link API 旧版本已有了一些改变。确保在安装 Data Link API 新版之前，卸载
所有其旧版本（包括未注册的）。

* 对旧版本的文件扩展名的改变
如果您已使用了服务组件的旧版本，存储数据链接文件的文件扩展名已改为“.udl”。

* 对旧版本的文件格式的改变
在支持 unicode 的最终发布的版本中，数据链接文件的文件格式已改变。此改变意味着现存的旧版数据链接文件将不能用于最终编译。您
需要重新编译数据链接文件。 

* 对旧版本的参数的改变
数据链接组件支持的 IDBPromptInitialize 接口的旧版本不包括将未知控制指针作为 PromptDataSource 第一个参数的指针。调用旧版 
Data Link API 中 IDBPromptInitialize::PromptInitialize 方法的应用程序将添加此参数并重编译以用于新版。

* GetInitString 和 DBPROP_AUTH_PERSISTSENSITIVEAUTHINFO  
IDataInitialize::GetInitString 返回一个连接串，包含在数据源对象上的初始化属性设定。这一方法包括指定的参数、
fIncludePassword，不管口令是否返回做为初始化信息的一部分。注意，如果DBPROP_AUTH_PERSISTSENSITIVEAUTHINFO 设定为 VARIANT 
FALSE，既使 fIncludePassword 有效，口令也不返回做为 GetInitString 的一部分。为了使口令成为信息的一部分从 GetInitString 
返回，用户必须将 DBPROP_AUTH_PERSISTSENSITIVEAUTHINFO 设定为 VARIANT TRUE。 

* 在 IDBPromptInitialize 中禁用提供者选择
IDBPromptInitialize::PromptDataSource 允许应用程序为用户提示连接信息。这一应用程序可以通过默认的数据源进入 
PromptDataSource 并可指定 DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION，以便防止用户改变指定的数据源。这一标志必须结合 
DBPROMPTOPTIONS_WIZARDSHEET 或 DBPROMPTOPTIONS_PROPERTYSHEET；只设定这一标志将无效。在  * ppDataSource 中设定这一标志而
没有指定一个有效的数据源，输入后将返回 E_INVALIDARG 的错误信息。

* 控制面板图标从最新的版本之中删除
以前发行的版本在服务部分中增加了一个数据链接图标到控制面板，可用其建立数据链接文件。这一图标已从最新的版本之中删除。如
建立数据链接文件，单击右键后出现一个目录或在平台上从“New”菜单中选定“Microsoft Data Link”既可。

-----------------------------
4. 已知的错误、限制和工作环境
-----------------------------
Microsoft Data Link API 2.0 已知问题如下：

* 文档错误：在“Listing Keywords Multiple Times”中，关于例外的说明“如果提供者关键字在列表中出现多次，将使用第一次出
现的关键字”是不正确的。正确的解释应为“如果提供者关键字在列表中出现多次，将使用最后一次出现的关键字”。

* 文档错误：在“OLE DB Initialization Properties: Quick Reference”中，可以添加附加说明和短值：

	DBPROP_INIT_OLEDBSERVICES
	Description: OLE DB Services
	OLE DB Documented Value		Connection String Short Value
	-----------------------		-----------------------------
	DBPROPVAL_OS_RESOURCEPOOLING	ResourcePooling
	DBPROPVAL_OS_TXNENLISTMENT	TxnEnlistment
	DBPROPVAL_OS_ENABLEALL		EnableAll

* 文档错误：在 IDataInitialize::GetDatasource 说明中，ppDatasource 参数说明中的第四段章节应修改如下：

如果 *ppDataSource 是 non-null ，且没有在 pwszInitializationString 中指定提供者，则将使用由 * ppDatasource 指定的数
据源。

在原文档中漏印“no”。

* 文档错误：在 IDBPromptInitialize::PromptDatasource 的说明中说“方法返回一连接字符串”。实际上，方法返回的是带有
指定属性设置的数据源对象。

* 文档错误：在文档说明中说“IDBPromptInitialize::PromptDataSource 的 cSourceTypeFilter、rgSourceTypeFilter 和 
pwszszzProviderFilter 参数是保存以备今后使用”。 应按已发布的 OLE DB 2.0 版本说明执行这些参数。

* 文档错误：在 IDBPromptInitialize::PromptFileName 的说明中建议“文件名可以传递到 IDataInitialze 以获得连接字符串
的数据源对象”。实际上它并不支持这项功能。为从 .udl 文件加载数据源，应用程序必须调用 
IDataInitialize::LoadStringFromStorage 来从文件中获得连接字符串，然后调用含有这些字符串的 
IDataInitialize::GetDatasource 以获得连接字符串的数据源对象。

* 文档错误：在 IDBPromptInitialize::PromptFilename 的有关 dwPromptOptions 的说明中建议“指定 
DBPROMPTOPTIONS_NODIRECTORYCHANGE 防止用户改变目录”。实际上，当使用对话框时，没有办法阻止用户改变目录，但如果设
置的标志为用户选择的目录不设置为默认的目录，则下一次窗口文件对话框依然出现。

* 文档错误：在 "Organizing Data Links" 部分，程序中列出的建立、编辑、删除和移动数据的链接文件要更改，应参考 
"the Organize Data Links Files dialog box"，以取代 "the explorer window"。


2.0 限制：请注意，已发布的 Data Link API 2.0 不支持创建远程提供者。除本地提供者以外，任何对 
IDataInitialize::CreateDBInstanceEx 的调用都将失败。