内容发布更新时间 : 2024/12/24 10:07:11星期一 下面是文章的全部内容请认真阅读。
用PB连接不同字符集的ORACLE方法如下:
1. 方法一:
版本:PB5,PB6,PB8,PB9,PB11
说明:通过程序动态修改WINDOW平台中注册表中的NLS_LANG。 //修改客户端字符集为ZHS16GBK string ls_nls_lang ls_nls_lang = \RegistrySet( \ls_lang) //进行数据库连接 Connect using sqlca; //重新修改客户端字符集为US7ASCII ls_nls_lang = \RegistrySet( \ls_lang) 缺点:不太稳定
2. 方法二
版本:PB5,PB6,PB8,PB9,PB11
说明:通过程序动态修改WINDOW平台中的环境变量的NLS_LANG。 //在global external function中增加以下外部API函数 FUNCTION ulong SetEnvironmentVariable(ref string lpName,ref string lpValue) LIBRARY \//修改WINDOW平台中环境变量NLS_LANG为ZHS16GBK SetEnvironmentVariableA (\//进行数据库连接 Connect using sqlca; //修改回WINDOW平台中环境变量NLS_LANG为US7ASCII SetEnvironmentVariableA (\ 缺点:不太稳定
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 = \SQLCA.LogPass = <******> SQLCA.LogId = \SQLCA.AutoCommit = False SQLCA.DBParm = \CONNECT USING SQLCA; 4. 方法四
版本:PB11
说明:连接时,通过设置DBParm参数中的字符集参数进行连接。 //连接US7ASCII SQLCA.DBMS = \SQLCA.ServerName = \SQLCA.LogId = \SQLCA.LogPass = “123456” SQLCA.AutoCommit = False //使用本地的NLS_LANG中的字符集进行连接。如本地的NLS_LANG= AMERICAN_AMERICA.US7ASCII,则使用该字符集连接。 SQLCA.DBParm = \Connect using SQLCA; //连接ZHS16GBK,如本地的NLS_LANG= AMERICAN_AMERICA.US7ASCII,该连接方式仍然采用ZHS16GBK进行数据库连接。 SQLCA.DBMS = \SQLCA.ServerName = \SQLCA.LogId = \SQLCA.LogPass = “123456 SQLCA.AutoCommit = False SQLCA.DBParm = \Connect using SQLCA;