最近重装了windows7 64位的,又装了oracle10g64位,发现pb连oracle频繁出错。熬了一个通宵终于算是解决了。开发环境,除了数据库服务,还要安装32位的oracle客户端,因为pb是32位的。

添加一个系统级环境变量:

TNS_ADMIN    D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN

默认安装完客户端,path里第一个是D:\oracle\product\10.2.0\client_1\bin;


如果pb还是不能连接,删掉监听重新创建,重启计算机看看。


直连方式有2种:

第一个:OLE连接方式

SQLCA.DBMS = "OLE DB"

SQLCA.LogPass = "si"

SQLCA.LogId = "si"

SQLCA.AutoCommit = False

SQLCA.DBParm = "PROVIDER='OraOLEDB.Oracle',DATASOURCE='127.0.0.1:1521/orcl'"


第二个:直连

// Profile 实例

SQLCA.DBMS = "O10 Oracle10g (10.1.0)"

SQLCA.LogPass = "service"

SQLCA.ServerName = "172.10.10.2:1521/orcl"

SQLCA.LogId = "service"

SQLCA.AutoCommit = False

SQLCA.DBParm = "PBCatalogOwner='service'"


发布后的程序,在用户机器上不用安装oracle客户端,直接把instantclient-basic-win32-10.2.0.5解压缩,把里面的dll文件拷贝到程序目录下即可直接执行。如果不把这些dll文件拷贝过去,可能会出现找不到本地nls_lang的提示。

注意开发环境与投产客户端的区别。