在PB10中连接Microsoft OLE DB连接数据库的方法

在PB10中连接Microsoft OLE DB连接数据库的方法

PB10OLE Microsoft OLE DB数据库连接配置

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

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

2、Sybasehttp://www.sybase.com/detail?id=1027224

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

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

在PB10中连接Microsoft OLE DB连接数据库的方法

 

大家请注意红框地方,配置的时候和以前版本也没什么区别。但最重要的是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文件。如图:

 

在PB10中连接Microsoft OLE DB连接数据库的方法

生成的连接语句如下:

// Profile pubs_udl

SQLCA.DBMS = "OLE DB"

SQLCA.AutoCommit = False

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

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

在PB10中连接Microsoft OLE DB连接数据库的方法

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

在PB10中连接Microsoft 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实现了ITableDefinitionWithConstraintsIAlterIndexIalterTable但是当SQLOLEDB作为本地服务器运行时这些接口并不可使用)。因此,我想,就是因为这个原因而导致PB连接数据库,在创建目录表时,而导致的OLE DB多步操作错误(这只是我想到的原因,请大家指点)。但无论如何,希望在正式版中不要出现这个讨厌的提示。

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

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