在用jdbc连接sqlserver2000时总是出现下面的问题,代码如下。我该如何处理?
查了一些资料,说问题是需要打个sqlsetver2000的SP4补丁,可是打了还是不行。是我补丁打错了吗?还是........?
请大虾帮忙指点一下,谢谢。
import java.sql.*;public class ConnectionTest
{
static
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("Successful loading MS sqlserver driver");
}
catch (Exception e)
{
System.out.println("Error loading MS sqlsetver driver");
e.printStackTrace();
}
}
public static void main(String[] args)
{
try
{
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://Localhost:1433; DatabaseName=INTRANETDB", "sa", ""); }
catch (Exception e)
{
e.printStackTrace();
}

}}//运行结果如下:/**
*
*
G:\实践战场\jdbc\Test> javac ConnectionTest.javaG:\实践战场\jdbc\Test> java ConnectionTest
Successful loading MS sqlserver driver
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing 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 Source)
        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
        at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at ConnectionTest.main(ConnectionTest.java:23)*/

解决方案 »

  1.   


    import java.sql.*;public class ConnectionTest
    {
    static
    {
    try
    {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    System.out.println("Successful loading MS sqlserver driver");
    }
    catch (Exception e)
    {
    System.out.println("Error loading MS sqlsetver driver");
    e.printStackTrace();
    }
    }
    public static void main(String[] args)
    {
    try
    {
    Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://Localhost:1433; DatabaseName=INTRANETDB", "sa", ""); }
    catch (Exception e)
    {
    e.printStackTrace();
    }

    }}//运行结果如下:/**
    *
    *
    G:\实践战场\jdbc\Test> javac ConnectionTest.javaG:\实践战场\jdbc\Test> java ConnectionTest
    Successful loading MS sqlserver driver
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing 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 Source)
            at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
            at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
            at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
            at java.sql.DriverManager.getConnection(DriverManager.java:582)
            at java.sql.DriverManager.getConnection(DriverManager.java:185)
            at ConnectionTest.main(ConnectionTest.java:23)*/
      

  2.   

    谢谢二楼的回答。虽然你的回答不是很详细。不过还是感谢你。同时我还要感谢另外一位大虾,它的博客地址是:http://hi.baidu.com/sleinet/blog/item/c829bca1f183068a471064d8.html不过我在打了SP4的补丁后。在命令提示符下,输入 :netstart -a 后,为什么没有看到1433 这个端口呢?
    G:\实践战场\jdbc\Test>netstat -aActive Connections  Proto  Local Address          Foreign Address        State
      TCP    IT:smtp                IT:0                   LISTENING
      TCP    IT:http                IT:0                   LISTENING
      TCP    IT:epmap               IT:0                   LISTENING
      TCP    IT:https               IT:0                   LISTENING
      TCP    IT:microsoft-ds        IT:0                   LISTENING
      TCP    IT:1028                IT:0                   LISTENING
      TCP    IT:1401                IT:0                   LISTENING
      TCP    IT:3306                IT:0                   LISTENING
      TCP    IT:8000                IT:0                   LISTENING
      TCP    IT:3609                localhost:12080        ESTABLISHED
      TCP    IT:3987                localhost:12080        ESTABLISHED
      TCP    IT:4008                localhost:12080        ESTABLISHED
      TCP    IT:4056                localhost:12080        ESTABLISHED
      TCP    IT:4124                localhost:12080        ESTABLISHED
      TCP    IT:4162                localhost:12080        ESTABLISHED
      TCP    IT:4166                localhost:12080        ESTABLISHED
      TCP    IT:12025               IT:0                   LISTENING
      TCP    IT:12080               IT:0                   LISTENING
      TCP    IT:12080               localhost:3392         TIME_WAIT
      TCP    IT:12080               localhost:3609         ESTABLISHED
      TCP    IT:12080               localhost:3839         TIME_WAIT
      TCP    IT:12080               localhost:3847         TIME_WAIT
      TCP    IT:12080               localhost:3849         TIME_WAIT
      TCP    IT:12080               localhost:3851         TIME_WAIT
      TCP    IT:12080               localhost:3855         TIME_WAIT
      TCP    IT:12080               localhost:3860         TIME_WAIT
      TCP    IT:12080               localhost:3862         TIME_WAIT
      TCP    IT:12080               localhost:3864         TIME_WAIT
      

  3.   

    import java.sql.*;public class ConnectionTest
    {
    static
    {
    try
    {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    System.out.println("Successful loading MS sqlserver driver");
    }
    catch (Exception e)
    {
    System.out.println("Error loading MS sqlsetver driver");
    e.printStackTrace();
    }
    }
    public static void main(String[] args)
    {
    try
    {
    Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://Localhost:1401; DatabaseName=INTRANETDB", "sa", "sa");
    //Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://Localhost:1028; DatabaseName=INTRANETDB", "sa", "sa");
    System.out.println("Successful connect sqlserver"); }
    catch (Exception e)
    {
    e.printStackTrace();
    }

    }}结果如下:
    G:\实践战场\jdbc\Test> javac ConnectionTest.javaG:\实践战场\jdbc\Test> java ConnectionTest
    Successful loading MS sqlserver driver
    Successful connect sqlserver
      

  4.   

    但是运行被注释的这行就会出现下面的情况:
    G:\实践战场\jdbc\Test> javac ConnectionTest.javaG:\实践战场\jdbc\Test> java ConnectionTest
    Successful loading MS sqlserver driver
    ——运行无法结束。必须以Ctrl + c 强制结束。发了这么多帖子,不为什么,是想把问题彻底弄明白。让我和更多的朋友受益。(呜呜,因为这个问题困惑了两天时间,这种感觉确实不好受呀)
    希望朋友们多多参与和指教。