那应该没有问题了 可是我运行后还是报错: Driver URL: jdbc:sybase:Tds:192.168.100.223:5000/javatest Driver Name: jConnect (TM) for JDBC (TM) Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug 9 12:45:12 2001 //---以上运行正常 com.sybase.jdbc2.jdbc.SybSQLException: test not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output). at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2444) at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1873) at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69) at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:201) at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:182) at com.sybase.jdbc2.jdbc.SybStatement.queryLoop(SybStatement.java:1508) at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1493) at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:399) at testDriver.main(testDriver.java:49)
高手呢!!!!!!!!!! 又没了?!!!!!!!!!!!!!!!附源程序: import com.sybase.jdbcx.*; import java.sql.*; // JDBC packageclass testDriver{public static void main(String args[]) { //String url = "jdbc:inetdae:localhost:1433"; //use your hostname and port number here String url = "jdbc:sybase:Tds:192.168.100.223:5000/javatest"; String login = "sa"; // use your login here String password = "111111"; // use your password here // String login = args[0]; // String password = args[1]; try { // DriverManager.setLogStream(System.out); // to create more info // DriverManager.getLogWriter(); // DriverManager.getLogStream(); // for technical support//============ the method of loading the jdbc driver is listed ===============// //load the class with the driver Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); // JDK,Netscape //or //Class.forName("com.inet.tds.TdsDriver").newInstance(); // JDK,Netscape,IE //or //new com.inet.tds.TdsDriver(); // JDK,Netscape,IE//set a timeout for login and query DriverManager.setLoginTimeout(10);//open a connection to the database Connection connection = DriverManager.getConnection(url,login,password);//to get the driver version DatabaseMetaData conMD = connection.getMetaData(); System.out.println("Driver URL:\t" + conMD.getURL()); System.out.println("Driver Name:\t" + conMD.getDriverName()); System.out.println("Driver Version:\t" + conMD.getDriverVersion());//select a database //connection.setCatalog("javatest");//create a statement Statement st = connection.createStatement();//execute a query //ResultSet rs1 = st.executeQuery("USE javatest"); ResultSet rs = st.executeQuery("SELECT * FROM test");// read the data and put it to the console //===================================================// /* while (rs.next()){ for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){ if(rs.getObject(j) instanceof String ) { String tmp = (String)rs.getObject(j); System.out.print(convert(tmp) + " "); } else System.out.print(rs.getObject(j) + " "); } System.out.println(); } */while (rs.next()){ for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){ System.out.print(rs.getObject(j) + " "); } System.out.println(); }//====================================================// st.close(); connection.close();} catch(Exception e) { e.printStackTrace(); } }//===========================================================// //Convert Unicode to GB if the Object is a String. public static String convert(String str){ try{ if (str != null) { byte[] b = str.getBytes ("8859_1"); str = new String (b); } }catch(java.io.UnsupportedEncodingException e) { return null; } return str; } //==========================================================// }
我想这不是程序的问题 这还是jdbc没有配置好
出错信息是说你的javatest库里没有test这张表啊!
Driver URL: jdbc:sybase:Tds:192.168.100.223:5000/javatest Driver Name: jConnect (TM) for JDBC (TM) Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug 9 12:45:12 2001 //---以上运行正常上面几行能输出来,表示你已经连上了数据库,下面再出错要么是你的程序问题,要么 是数据库的数据结构设计问题了。
现在又报新的错误: Driver URL: jdbc:sybase:Tds:192.168.100.223:5000/javatest Driver Name: jConnect (TM) for JDBC (TM) Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug 9 12:45:12 2001 java.sql.SQLException: JZ006: Caught IOException: java.io.IOException: JZ0I6: An error occured converting UNICODE to the charset used by the server. Error message: java.io.CharConversionException: java.io.UnsupportedEncodingException: UnsupportedCharset at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:467) at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:2821) at com.sybase.jdbc2.tds.Tds.language(Tds.java:638) at com.sybase.jdbc2.jdbc.SybStatement.sendQuery(SybStatement.java:1422) at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1492) at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:399) at testDriver.main(testDriver.java:49)
检查这里,是DatabaseMetaData 吗?
把那几个文件放到sql advantage中执行一下即可。Sybase的产品好像比较特别,如果需要支持PowerBuilder连接数据库也要执行几个.sql文件,
在master库里创建一些表。要支持JDBC也要来这一套。
没有参数???
我用的jConnect5.2,jConnect5.5都没问题。
我用的是linux下的sybase11。9
我看了一些资料
sql_server12.sql是对sybase ase12使用的
可是我运行后还是报错:
Driver URL: jdbc:sybase:Tds:192.168.100.223:5000/javatest
Driver Name: jConnect (TM) for JDBC (TM)
Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug 9 12:45:12 2001
//---以上运行正常
com.sybase.jdbc2.jdbc.SybSQLException: test not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output). at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2444)
at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1873)
at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:201)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:182)
at com.sybase.jdbc2.jdbc.SybStatement.queryLoop(SybStatement.java:1508)
at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1493)
at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:399)
at testDriver.main(testDriver.java:49)
又没了?!!!!!!!!!!!!!!!附源程序:
import com.sybase.jdbcx.*;
import java.sql.*; // JDBC packageclass testDriver{public static void main(String args[])
{
//String url = "jdbc:inetdae:localhost:1433";
//use your hostname and port number here
String url = "jdbc:sybase:Tds:192.168.100.223:5000/javatest";
String login = "sa"; // use your login here
String password = "111111"; // use your password here
// String login = args[0];
// String password = args[1];
try {
// DriverManager.setLogStream(System.out); // to create more info
// DriverManager.getLogWriter();
// DriverManager.getLogStream();
// for technical support//============ the method of loading the jdbc driver is listed ===============//
//load the class with the driver
Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); // JDK,Netscape
//or
//Class.forName("com.inet.tds.TdsDriver").newInstance(); // JDK,Netscape,IE
//or
//new com.inet.tds.TdsDriver(); // JDK,Netscape,IE//set a timeout for login and query
DriverManager.setLoginTimeout(10);//open a connection to the database
Connection connection = DriverManager.getConnection(url,login,password);//to get the driver version
DatabaseMetaData conMD = connection.getMetaData();
System.out.println("Driver URL:\t" + conMD.getURL());
System.out.println("Driver Name:\t" + conMD.getDriverName());
System.out.println("Driver Version:\t" + conMD.getDriverVersion());//select a database
//connection.setCatalog("javatest");//create a statement
Statement st = connection.createStatement();//execute a query
//ResultSet rs1 = st.executeQuery("USE javatest");
ResultSet rs = st.executeQuery("SELECT * FROM test");// read the data and put it to the console
//===================================================//
/*
while (rs.next()){
for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){
if(rs.getObject(j) instanceof String )
{
String tmp = (String)rs.getObject(j);
System.out.print(convert(tmp) + " ");
}
else
System.out.print(rs.getObject(j) + " ");
}
System.out.println();
}
*/while (rs.next()){
for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){
System.out.print(rs.getObject(j) + " ");
}
System.out.println();
}//====================================================//
st.close();
connection.close();} catch(Exception e) {
e.printStackTrace();
}
}//===========================================================//
//Convert Unicode to GB if the Object is a String.
public static String convert(String str){
try{
if (str != null) {
byte[] b = str.getBytes ("8859_1");
str = new String (b);
}
}catch(java.io.UnsupportedEncodingException e)
{
return null;
}
return str;
}
//==========================================================//
}
这还是jdbc没有配置好
Driver Name: jConnect (TM) for JDBC (TM)
Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug 9 12:45:12 2001
//---以上运行正常上面几行能输出来,表示你已经连上了数据库,下面再出错要么是你的程序问题,要么
是数据库的数据结构设计问题了。
Driver URL: jdbc:sybase:Tds:192.168.100.223:5000/javatest
Driver Name: jConnect (TM) for JDBC (TM)
Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug 9 12:45:12 2001
java.sql.SQLException: JZ006: Caught IOException: java.io.IOException: JZ0I6: An error occured converting UNICODE to the charset used by the server. Error message: java.io.CharConversionException: java.io.UnsupportedEncodingException: UnsupportedCharset
at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:467)
at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:2821)
at com.sybase.jdbc2.tds.Tds.language(Tds.java:638)
at com.sybase.jdbc2.jdbc.SybStatement.sendQuery(SybStatement.java:1422)
at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1492)
at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:399)
at testDriver.main(testDriver.java:49)