Fehler bei der Verbindung zu einer MSSQL/Express Datenbank!

Status
Nicht offen für weitere Antworten.

mr.freeze

Aktives Mitglied
Hallo,

ích möchte eine Verbindung zu einer MSSQL SQLEXPRESS Datenbank herstellen aber
es funktioniert leider nicht! :cry:

Code:
import java.sql.*;

public class _Connect {


    public static void main(String[] args) {
	
        String connectionUrl = "jdbc:sqlserver://RE2001\\SQLEXPRESS;" +    //RE2001\\SQLEXPRESS;
			"databaseName=Adressverwalung;integratedSecurity=true;"; ^
                                                                            //User ID=sa;Password=dbms

    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;

    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        con = DriverManager.getConnection(connectionUrl);
		    
        String SQL = "SELECT * FROM Adresse";
        stmt = con.createStatement();
        rs = stmt.executeQuery(SQL);
		    
	
        while (rs.next()) {
            System.out.println(rs.getString("Vorname") + " " + rs.getString("Nachname"));
        }
    }


    catch (Exception e) {
        e.printStackTrace();
    }

Folgender Fehler wir ausgegeben:

com.microsoft.sqlserver.jdbc.SQLServerException: Es konnte keine Verbindung mit der benannten Instanz "" hergestellt werden. Fehler: java.net.SocketTimeoutException: Receive timed out.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:562)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at _Connect.main(_Connect.java:18)

Ist der Treiber nur für MS SQL2005 und nicht für die Express-Edition?
 
Die connectionUrl kommt mir etwas seltsam vor mit dem Backslash ... Sicher dass die korrekt ist?

- Alex
 
Die Sachen mit "\\" in der Adresse sind AFAIK "M$-Verseucht" und sollten in "normalen" URLs nicht vorkommen.

Schau mal hier:
http://cwiki.apache.org/CAY/database-support.html

Da ist die URL wie folgt erklärt:

Code:
jdbc:sqlserver://127.0.0.1;databaseName=dbname

Statt 127.0.0.1 einfach die IP oder den HOSTNAMEN des DB-Servers angeben. Und statt dbname eben der Name der Datenbankauf dem Server.
 
mein Server heißt leider so RE2001/SQLEXPRESS

habe es auch schon mit localhost probiert, ging aber auch nicht!

kann es sein, dass der Treiber nicht für die Express-Version geschrieben ist?
 
mein Server heißt leider so RE2001/SQLEXPRESS
Das sagtest du bereits, aber wie heisst die DB (Schema)?

Ist der TCP/IP Port des Servers aktiviert?
Bei der Standard Installation des MS SQL 2005 Servers ist der *natürlich* deaktiviert....

Den Server Konfiguration Manager öffnen, dann:
SQL Native Client -> Cientprotokolle -> TCP/IP
 
Der Rechner hat sicher nicht "RE2001/SQLEXPRESS" als Hostname. Das ist irgend nen Windows-Krempel, aber kein Hostname im Sinne von TCP/IP<->DNS

Welcher Fehler kommt denn bei 127.0.0.1 ?

- Alex
 
jdbc:sqlserver://localhost:1433;databaseName=Adressverwalung;integratedSecurity=true;User=sa;Password=dbms
com.microsoft.sqlserver.jdbc.SQLServerException: Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden. java.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:562)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at _Connect.main(_Connect.java:19)


TCP/IP ist aktiviert habe nachgeschaut!

Die Datenbank läuft auch korrekt, ich kann über ein anderes Programm (c#) darauf zugreifen!
 
ich habe es nicht umgestellt!

aber ich gehe mal davon aus, dass es aktiviert ist, wenn es dort steht!

mit telnet habe ich nichts gemacht! wüsste nich wie :roll:
 
Vorrausgestzt das telnet installiert ist:
Code:
c:\>telnet localhost 1433
Danach weist du sofort, ob der port offen ist oder nicht...
 
L:\>telnet localhost 1433
Verbindungsaufbau zu localhost...Es konnte keine Verb
ellt werden, auf Port 1433: Verbinden fehlgeschlagen


Habe tcp/ip bei Sql configuration manager , protokolle für sqlexpress aktiviert.
es geht aber immer noch nicht![/img]
 
Zeig doch mal die für C# notwendige Verbindungs-URL .. vielleicht lässt sich daraus etwas mehr Info ziehen.

- Alex
 
sorry, hatte urlaub!


string connection_string = "Data Source=RE2001\\SQLExpress;Initial Catalog=Adressverwalung;Persist Security Info=True;User ID=sa;Password=dbms";
 
hatte einen anderen port!

jetzt funktioniert es

String connectionUrl = "jdbc:sqlserver://RE2001\\SQLEXPRESS:3202;" + "databaseName=Adressverwalung;user=sa;password=dbms";
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben