最近重装了windows7 64位的,又装了oracle10g64位,发现pb连oracle频繁出错。熬了一个通宵终于算是解决了。开发环境,除了数据库服务,还要安装32位的oracle客户端,因为pb是32位的。
添加一个系统级环境变量:
TNS_ADMIND:\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的提示。
注意开发环境与投产客户端的区别。