请教在JBuilder中数据库SQL Server编程问题?(100分)

  • 主题发起人 主题发起人 gbchen
  • 开始时间 开始时间
G

gbchen

Unregistered / Unconfirmed
GUEST, unregistred user!
以下是我的一段程序,要提取SQL Server 7.0系统表中的信息,但出现不能得到正确结果,不知道为什么?
import java.sql.*;
import java.jbcl.*;
class servername{
public static void main(String[] args){

String sn = "Unkonwn Server Name";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try{
Connection conn = DiverManager.getConnection("jdbc:odbc:gbchen","sa","");
Statement stmt = conn.createStatement();
ResultSet rSet = stmt.executeQuery("select user");
sn = rSet.getString(1);

}catch(SQLException excp){
System.err.println("ERROR:"+excp.getMessage());

}
}catch(ClassNotFoundException excp){
System.err.println("Errors:"+excp.getMessage());

}
System.out.println(sn);
}
运行出现如下错误:
ERROR:[Microsoft][ODBC Driver Manager] Invalid cursor state
Unkonwn Server Name
前端开发环境为JBuilder 2.0 数据库为SQL Server 7.0,请教是什么原因,如何解决?谢谢!
 
好象还没正确连接吧?呵呵。我也不晓得
 
没有正确连接
Connection conn =?
 
应该是没有正确连接, 很久以前才看过, 没有实际编过.
 
加上Connection conn = DriverManager.getConnection("jdbc:odbc:your_dsn","user","password");
 
conn= ???
J-O Bridge is not a good idea. You can get the SQL7- JDBC Drive now. Just try to use it. It is just a begin
. After that, everything will be easier.
 
请先用rS用et.next();,这将返回一个boolean型,如果你的rSet 为空,返回false;
用法:
while(rSet.next()){
String s=rSet.getString(1);
//other
}
 
你的程序出了以下的几个问题:
1)加上Connection conn = DriverManager.getConnection("jdbc:odbc:your_dsn","user","password");
dsn在你系统中的odbc源中设置。注意要将缺省的数据库设为你想要操作的数据库。
2)你的sql语句有问题,应该是select user from "table ";
3)你的得到结果的语句有问题,应该这样写
while(rSet.next()){
String s=rSet.getString(1);
}
 
先rSet.next();然后肯定可以!
 

同意moutocean和王福川!必须先next,才能找到数据!
 
我也同意gxzbaby和王福川的意见。
请继续...
 
同意王福川的意见
 
gbchen:既然英雄所见略同,是否可以结束问题
 
多人接受答案了。
 
后退
顶部