JDBC连接SQLServer2000的时候出现如下错误,SP3补丁已经打了,能连上数据库,但不能把数据表中的数据取出,在调SQLServer内部数据库里面的表的时候是可以取出数据的,但是不能调自己新建的数据库中的表的数据,程序关键代码如下:
import java.sql.*;
class test{
public static void main(String args[]){
Connection con=null;
Statement st;
ResultSet rs;
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
// String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind";
String user="sa";
String pwd="123";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("driver is ok");
con=DriverManager.getConnection(url,user,pwd);
System.out.println("conection is ok");
st=con.createStatement();
rs = st.executeQuery("SELECT fileID,fileName FROM file");
while(rs.next())
System.out.println("fileName:"+"\t"+rs.getString("fileName"));
System.out.println("fileID:"+"\t"+rs.getString("fileID"));
}
catch(Exception e)
{
e.printStackTrace();
}
当读取Northwind数据库时是可以读出该数据库Customers表中的数据,当读取自己新建的数据库中的表时显示以下错误:driver is ok
conection is ok
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'file' 附近有语法错误。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at test.main(test.java:18)
本人刚刚接触这方面的东西,请大家不吝赐教!谢谢
import java.sql.*;
class test{
public static void main(String args[]){
Connection con=null;
Statement st;
ResultSet rs;
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
// String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind";
String user="sa";
String pwd="123";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("driver is ok");
con=DriverManager.getConnection(url,user,pwd);
System.out.println("conection is ok");
st=con.createStatement();
rs = st.executeQuery("SELECT fileID,fileName FROM file");
while(rs.next())
System.out.println("fileName:"+"\t"+rs.getString("fileName"));
System.out.println("fileID:"+"\t"+rs.getString("fileID"));
}
catch(Exception e)
{
e.printStackTrace();
}
当读取Northwind数据库时是可以读出该数据库Customers表中的数据,当读取自己新建的数据库中的表时显示以下错误:driver is ok
conection is ok
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'file' 附近有语法错误。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at test.main(test.java:18)
本人刚刚接触这方面的东西,请大家不吝赐教!谢谢
再不然用select * from file看报错否.
我记得jdbc连接sqlserver的时候,有两种连接方式,这只是微软的一种,还有另一种我忘了,你可以在网上查下,用那种连接,不过好像要换包。
如果错误:说明是sql语句有问题。