在SYBASE下如何解决中文问题?

echo2002 2002-06-18 11:21:13
我的链接数据库的类如下:
/*
* DBBean.java
*
* Created on 2002年4月27日, 下午3:50
*/

package DBBean;

import java.sql.*;
import com.sybase.jdbcx.*;
import java.util.*;
public class DBBean{
public String driver_name;
public String con_url;
public String login_user;
public String login_password;
public String query_statement;
public String param[];
public ResultSet result=null;
public Connection con=null;
public PreparedStatement select_stm=null;

public void setDriverName(String driver_name){
this.driver_name=driver_name;
}
public void setConUrl(String con_url){
this.con_url=con_url;
}
public void setLoginUser(String login_user){
this.login_user=login_user;
}
public void setLoginPassword(String login_password){
this.login_password=login_password;
}
public void setQueryStatement(String query_statement){
this.query_statement=query_statement;
}

public void query_result()
{
try{
Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
String url=con_url;

con = DriverManager.getConnection("jdbc:sybase:Tds:192.0.0.9:5000/finance","sa","purchasemis");


select_stm=con.prepareStatement(query_statement);
if(param!=null)
for(int i=0;i<param.length;i++)
select_stm.setString(i+1,param[i]);
result=select_stm.executeQuery();

}catch(Exception e){
}
}


public void insertDB()
{
try{
Class.forName("com.sybase.jdbc2.jdbc.SybDriver");

con = DriverManager.getConnection("jdbc:sybase:Tds:192.0.0.9:5000/finance","sa","purchasemis");

PreparedStatement select_stm=con.prepareStatement(query_statement);
if(param!=null)
for(int i=0;i<param.length;i++)
select_stm.setString(i+1,param[i]);
select_stm.executeQuery();

}catch(Exception e){
}
}
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859_1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{
}
return "null";
}

public void close() throws SQLException{
if (con!=null) con.close();
if (result!=null) result.close();
if (select_stm!=null) select_stm.close();
}

/*回收资源*/
protected void finalize() throws Throwable
{
this.close();
}
}

其中的GETSTR就是转换中文的,但在SYBASE下不行。
原来在JDBC-ODBC下就可以的,一但把类写成纯JAVA链接数据库就不行了。可以告诉我为什么吗
...全文
23 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
IronPromises 2002-06-18
  • 打赏
  • 举报
回复
database中是否用nvarchar和nchar的數據類型?

IronPromises 2002-06-18
  • 打赏
  • 举报
回复
database中是否用nvarchar和nchar的數據類型?

echo2002 2002-06-18
  • 打赏
  • 举报
回复
不好意思,刚刚发现:不是GETSTR有问题,在网页中添加数据可以显示正常的中文,但用SYBASE的SQL ADVANTAGE 一看,在网页中正常显示的在SQL ADVANTAGE看到的都是乱码,而在SQL ADVANTAGE中添加数据,在SQL ADVANTAGE中看到的是正常的中文,但在页面看到的是乱码。恰恰与前者相反。而我必须在SQL ADVANTAGE添加一些固定的中文信息,什么办?
rong_xing 2002-06-18
  • 打赏
  • 举报
回复
别的编码转换试过吗?
JDBC-ODBC可能预处理过,应该和直接用JDBC不一样
echo2002 2002-06-18
  • 打赏
  • 举报
回复
没有

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧