我的系统是xp sp2,数据库是sql server 2000 sp4,系统的环境变量如下:
CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JDBC_Home%\lib\msbase.jar;%JDBC_Home%\lib\mssqlserver.jar;%JDBC_Home%\lib\msutil.jar; 
JAVA_HOME
C:\j2sdk1.4.2_04
JDBC_Home
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC
Path
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;测试程序如下:
import java.sql.*;
public class a {
public static void main(String[] args){
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433; DatabaseName=fsbbs";
String userName = "sa";
String userPwd = "123";
Connection dbConn;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
Statement pStmt=dbConn.createStatement();
String sql = "insert into ta (a,b) values ('aaa','bbb')"; 
pStmt.executeUpdate(sql);
}
catch (Exception e) {
e.printStackTrace();
}

}
错误提示如下:D:\>java a
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing socket.
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
        at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at a.main(a.java:11)
D:\>数据库中确有fsbbs数据库,
sa默认的数据库是fsbbs,
fsbbs里确有表ta,
sa的密码也正确,
端口确是1433,
insert into ta (a,b) values ('aaa','bbb')在查询分析器里能正确运行。
谁能帮我看看这是怎么回事??
救救我吧!!!!!!!!!!!!1

解决方案 »

  1.   

    先确定是不是能连通,再执行你的SQL语句。
    请参考以下两个URL
    http://blog.csdn.net/jinzhili/archive/2006/02/15/599217.aspx
    http://blog.csdn.net/jinzhili/archive/2006/02/13/597891.aspx
      

  2.   

    唉,从来没有搞过MS SQLSERVER。
    可偏偏问此类问题的都是跟MS SQLSERVER相关的。
    搞不懂到底是MS的JDBC问题多,还是用的人实在太多导致问问题的人多~
      

  3.   

    连接失败了, 检查一下JDBC设置之类的
    MSSQL的数据库可以现在系统中建个ODBC用Sun的ODBC-JDBC桥来连接也可以
      

  4.   

    Error establishing socket
    打补丁去
      

  5.   

    1、下载Microsoft SQL Server 2000 Service Pack 3a并安装,SQL请选用混和安装模式!!!
    http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn2、下载SQL Server 2000 Driver for JDBC Service Pack 3
    http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en3、运行时关闭防火墙
      

  6.   

    打sql server sp4补丁,之前也曾遇到过类似的问题
      

  7.   

    这个问题,很大的原因就是1433端口没打开。
    你在查询分析器输入select @@version 看一下你的SQL版本号,jdbc需要sp3以上的补丁!
      

  8.   

    jdbc:microsoft:sqlserver://127.0.0.1:1433; DatabaseName=fsbbs
    你的dbURL好象有问题1433后面有";"吗
      

  9.   

    先打SQLSERVER SP4补丁,再装SQL的JDBC补丁