PB10中Microsoft OLE DB数据库连接配置

** PB10 中 OLE Microsoft OLE DB 数据库连接配置 **

PB10 的测试版本已经推出来有段时间。可是我直到现在我才开始试用 :$ 。 PB10 Beta 1 可以到下面两个地址下载:

1、 陶清: _ http://www.pdriver.com/display.asp?key_id=1563 _

2、 Sybase : _ http://www.sybase.com/detail?id=1027224 _

PB10 的新特性大家可以从相关网站查找,这里就不多说了。我在这里主要想介绍一下 PB10 中新增的 OLE Microsoft OLE DB 数据连接方式。这是因为微软从 7/2000 的版本已经不再对直接方式提供支持,因为直接方式并不能支持所有 MS SQL SERVER 的特性。

PB10 版本的数据连接配置和先前版本的界面没什么区别,和以前一样点 DB Profile 就可以进去了。如图:

大家请注意红框地方,配置的时候和以前版本也没什么区别。但最重要的是 Extended 处。因为我自己在使用的时候,找了半天也没找到哪儿可以选择数据库 :$ 。在这里我们可以填上一些附加的属性。在这里,我就只加上 database=pubs 。好了,就是这么简单。生成连接语法如下:

// Profile pubs

SQLCA.DBMS = "OLE DB"

SQLCA.LogPass = "MyPwd"

SQLCA.LogId = "sa"

SQLCA.Lock = "RC"

SQLCA.AutoCommit = False

SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='sunset',PROVIDERSTRING='database=pubs'"

接下来再介绍第二种方式 — 使用通用数据链接 UDL 文件。我们除了象原来那样直接配置之外,还可以使用配置文件,也就是 UDL 文件,这个类似于我们的 INI 文件。如图:

生成的连接语句如下:

// Profile pubs_udl

SQLCA.DBMS = "OLE DB"

SQLCA.AutoCommit = False

SQLCA.DBParm = "DATALINK='G:\PBPRJ\PB10\Samples\pubs.udl'"

做好上面的工作后,我们测试一下连接,看是否成功。如图:

显示 OLE DB 操作错误。点击确定。出现下图:

这是怎么回事?其实我们在连接 Access 等数据库的时候也会出现这个问题 — 无法创建以 Pbcat 开头的 PB 目录表( Catalog tables )。如果在您系统中不需要使用到 PB 的目录表,那么您就可以完全不用理会这个提示,因为它最后告诉我们已经连接成功,事实也是如此。

但是为什么会出现这个错误呢?我们还是稍微追查一下原因。如果您安装了 MSDN ,那么您可以到下面这个链接去看一看。

_ ms-help://MS.MSDNQTR.2003FEB.2052/oledb/htm/sql_server_provider.htm _

从中我们知道, OLE DB Provider For Sql Serve 有一些已知的局限性。这就是: Although the OLEDB for SQL Server Provider implements ITableDefinitionWithConstraints , IAlterIndex and IalterTable , these interfaces are not exposed if it runs as LOCAL_SERVER。 ( 尽管 SQLOLEDB 实现了 ITableDefinitionWithConstraints 、 ** IAlterIndex ** 和 ** IalterTable ** , 但是当 SQLOLEDB 作为本地服务器运行时 这些接口并不可使用 )。因此,我想,就是因为这个原因而导致 PB 连接数据库,在创建目录表时,而导致的OLE DB多步操作错误(这只是我想到的原因,请大家指点)。但无论如何,希望在正式版中不要出现这个讨厌的提示。

另外,关于 UDL 的介绍,我们可以到下面这个地址去查看:

_ ms-help://MS.MSDNQTR.2003FEB.2052/vsintro7/html/vxtskCreatingConfiguringUniversalDataLinkFiles.htm _

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus