在PB10中连接Microsoft OLE DB连接数据库的方法
在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