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

可能初次使用pb10的朋友无法顺利连接到sql server,一方面没有了mssql server专用接口了,这是因为微软从7/2000的版本已经不再对直接方式提供支持,因为直接方式并不能支持所有MS SQL SERVER的特性。另一方面数据库管理系统(DBMS)换成了“OLE DB”,配置起来有点不顺手!下面就来介绍pb10中用OLE DB连接sql 2000数据库。

在安装pb10的时候选择custom/full方式安装(默认的安装方式不会安装ole db接口),next-》如果你没有安装.net则不要选择列表中的ADO.net....项。一路next完成安装。

在数据库画板中找到OLE microsoft OLE DB项,在其上右键新建一个配置,在弹出的配置窗口中:

profile name:填写配置文件名  //任意即可

provider:选择数据库管理系统类型,这里选择“SQLOLEDB”项

data source:服务器名(和之前的版本不太一样)。可以在下拉列表中选择,也可以填入服务器名或IP地址如:127.0.0.1等。如果上面的provider不是“SQLOLEDB”则此下拉列表中可能没有选项。

user ID:用户名。我的用户名是默认的sa

password:对应上面user ID的密码,我的密码是空的,所以不填。

到这里你就可以顺利的连接到sql server了。但是连接到哪个数据库呢?上面的参数都没有指明,我也找了半天:P。不要着急,在Extended里填入 “database=数据库名” 就可以了。(不要引号)

最后的配置文件内容为:

// Profile his
SQLCA.DBMS = "OLE DB"
SQLCA.LogId = "sa" //我的用户名是sa
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='NETMANAGER',PROVIDERSTRING='database=zs'" //我的数据库名是:zs;datasource后面也可以是IP地址:DATASOURCE='127.0.0.1'

至此就完成了pb10下用OLE DB连接sql server的配置!

上面加上sqlca.lock='RC'
使用默认值,多用户可能无法正常使用

====================================================

今天测试了一下PB的ole db,结论如下:

SQLCA.DBMS = "OLE DB"
SQLCA.LogId = "xiaoyu"
SQLCA.Lock = "TC"
SQLCA.AutoCommit = False
SQLCA.DBParm="PROVIDER='SQLOLEDB',DATASOURCE='CH0',PROVIDERSTRING='database=manage2001'"

其中PROVIDERSTRING='database=manage2001'写在扩展属性中,但不知道为什么,在数据库画笔里看不到用户表。

如果是ACCESS,就简单许多:

SQLCA.DBMS = "OLE DB"
SQLCA.LogId = "admin"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='"+gs_app_path+"data\pay.mdb'"

当然,我没写扩展属性,这里也可以加上扩展属性的。

也可以创建一个udl文件,然后双击它,设置它,然后加到 dbparm 属性上。效果是一样的。

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

 

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值