用PB连接不同字符集的ORACLE方法如下:
1. 方法一:
版本:PB5,PB6,PB8,PB9,PB11
说明:通过程序动态修改WINDOW平台中注册表中的NLS_LANG。
oracle10g客户端安装步骤
//修改客户端字符集为ZHS16GBK
string ls_nls_lang
ls_nls_lang = "SIMPLIFIED CHINESE_CHINA. ZHS16GBK"
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ORACLE","NLS_LANG",regstring!,ls_nls_lang)
//进行数据库连接
Connect using sqlca;
//重新修改客户端字符集为US7ASCII
ls_nls_lang = "AMERICAN_AMERICA.US7ASCII"
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ORACLE","NLS_LANG",regstring!,ls_nls_lang)
缺点:不太稳定
   
2. 方法二
版本:PB5,PB6,PB8,PB9,PB11
说明:通过程序动态修改WINDOW平台中的环境变量的NLS_LANG。
//在global external function中增加以下外部API函数
FUNCTION ulong SetEnvironmentVariable(ref string lpName,ref string lpValue) LIBRARY "kernel32.dll" ALIAS FOR "SetEnvironmentVariableA"
//修改WINDOW平台中环境变量NLS_LANG为ZHS16GBK
SetEnvironmentVariableA ("NLS_LANG", "SIMPLIFIED CHINESE_CHINA. ZHS16GBK")
//进行数据库连接
Connect using sqlca;
//修改回WINDOW平台中环境变量NLS_LANG为US7ASCII
SetEnvironmentVariableA ("NLS_LANG", "AMERICAN_AMERICA.US7ASCII")
缺点:不太稳定
3. 方法三
版本:PB9
说明:通过JDBC连接数据库时默认是采用ZHS16GBK的字符集。
1. 复制C:\Program Files\Sybase\Shared\PowerBuilder\jdk14目录到程序的运行目录下。
2. 复制pbjdc90.dll到程序运行目录下(pb调用JDBC的DLL,通常在PB安装目录下在的SHARE目录下)
3. 复制ojdbc14.jar到程序运行目录下(ORACLE的JDBC驱动,通常在ORACLE安装目录的JDBC目录下)
4. 增加客户机的系统环境变量classpath=c:\xxxxx\pbjdc90.dll;c:\xxxx\ojdbc14.jar
//通过JDBC连接数据库
SQLCA.DBMS = "JDBC"
SQLCA.LogPass = <******>
SQLCA.LogId = "zyclinic"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Driver='oracle.jdbc.driver.OracleDriver',URL='jdbc:oracle:thin:@192.168.17.86:1521:oracle'"
CONNECT USING SQLCA;
4. 方法四
版本:PB11
说明:连接时,通过设置DBParm参数中的字符集参数进行连接。
//连接US7ASCII
SQLCA.DBMS = "O10 Oracle10g (10.1.0)"
SQLCA.ServerName = "database"
SQLCA.LogId = "zyclinic"
SQLCA.LogPass = “123456”
SQLCA.AutoCommit = False
//使用本地的NLS_LANG中的字符集进行连接。如本地的NLS_LANG= AMERICAN_AMERICA.US7ASCII,则使用该字符集连接。
SQLCA.DBParm = "NLS_Charset='Local'"
Connect using SQLCA;
//连接ZHS16GBK,如本地的NLS_LANG= AMERICAN_AMERICA.US7ASCII,该连接方式仍然采用ZHS16GBK进行数据库连接。
SQLCA.DBMS = "O10 Oracle10g (10.1.0)"
SQLCA.ServerName = "database"
SQLCA.LogId = "zyclinic"
SQLCA.LogPass = “123456
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
Connect using SQLCA;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。