MS SQL Server 2005 + JDBC (TCP/IP Problem?)

Kenji220

Grünschnabel
Hallo,

ich habe vor einer Woche ein Praktikum angefangen und mir wurde nun die Aufgabe gestellt eine GUI (oder UI) zu entwickeln mit der ich die Datenbank eines MS SQL 2005 Servers aufrufen und evtl. auch bearbeiten kann.

Dummerweise habe ich schon bei der Verbindung Probleme. Nutzen tu ich den JDBC von Microsoft (mit aktuellen Connection-URLs für die 2005er version). Benutzen tu ich momentan noch die DbTableShow.java von hier: http://www.torsten-horn.de/techdocs/java-sql.htm#Programmierbeispiele . Obwohl ich die TCP/IP Einstellungen aktiviert habe bekomme ich immer eine TCP/IP Fehlermeldung. Den genauen Fehlercode werde ich morgen früh nachposten.

Habe mir dieses WE so meine Gedanken gemacht und hoffe das Problem gefunden zu haben. Auch wenn ich es erst morgen früh erst überprüfen kann.

Der Server läuft auf dem PC von dem ich auf den Server zugreifen will. Der eigentliche Server ist in einer Instanz: Duischul01/FBF_T. Versucht zuzugreifen habe ich über jdbc:sqlserver://Duischul01/FBF_T:1433, aber kann in diesem Fall nicht auch localhost benutzt werden? Wenn ja, muss ich dann die Instanz FBF_T mit angeben bzw. in welcher Reihenfolge würde dann Host, Instanz und Port sein?
Außerdem wird in dem Server Konfigurationsprogramm ja auch eine IP angezeigt. Kann die auch genutzt werden für die Connection?

Ich habe ja auch in dem Server Konfigurationsprogramm 1 mal den MSSQLSERVER und den FBF_T-Server. Mir ist mittlerweile klar, dass der Port auf dem MSSQLSERVER gesetzt wird, aber spielt der Dynamic Port bei der FBF_T-Server Instanz auch eine Rolle?

Müssen neben den beiden Servern noch irgendwelche anderen Dienste laufen? Der SQL Server Browser ist auch an, weil ich irgendwo gelesen habe, dass der bei der TCP/IP Verbindung auch eine Rolle spielen kann.

So ... hoffe mir kann jemand helfen. Falls noch Informationen benötigt werden ist das kein Problem. Meinetwegen mach ich auch Screenshots von den Server Einstellungen wenn es der Sache dienlich ist. Hauptsache ich steh beim Praktikum mal etwas besser da. Auch wenn ich mich das erste mal mit MS SQL beschäftige und dasselbe für die Datenbankverbindung über Java zählt, muss da schon etwas mehr gehen ...

Danke im Voraus,
Nico

P.S. Die .tar hab ich auch ins Projekt importiert und Springs JBDC Template würd ich zwar gerne benutzen, aber da im kompletten Betrieb Microsoft Produkte verwendet werden hat da mein Verantwortlicher Probleme mit.
 
Zuletzt bearbeitet:
Hallo,
also ich habs jetzt auch mit dem Springs Template versucht, aber da komm ich noch viel weniger mit klar.

So ... hier erstmal die Fehlermeldung die ich bekomme:
com.microsoft.sqlserver.jdbc.SQLServerException: Es konnte keine TCP/IP-Verbindung zu Host "" hergestellt werden. java.net.UnknownHostException:

Als Datenbanktreiber benutze ich:
com.microsoft.sqlserver.jdbc.SQLServerDriver

URL der Datenbank:
jdbc:sqlserver://DUISCHUL01/FBF_T:1433 (habe das Gefühl damit hat es was zutun ...)

Hier noch mal 2 Bilder mit den Einstellungen bei der SQL Server Konfiguration. Ich hoffe das hilft etwas weiter. Ich weiß mir momentan alleine einfach nicht mehr zu helfen ...

http://img509.imageshack.us/my.php?image=01fm7.jpg

rechts MSSQLSERVER, links FBF_T:

http://img522.imageshack.us/my.php?image=02yf1.jpg
 
Zuletzt bearbeitet:
Also wenn du es mit ACCESS machst, ist der Code zu auslesen der Datenbank wie folgt:

Code:
try {
	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	    Connection con = DriverManager.getConnection("jdbc:odbc:Hier muss der Name stehen, denn du in der ODBC eingetragen hasst");
	    String strSql = "SELECT * FROM Hier muss der Tabellenname stehen";
	    Statement stmt = con.createStatement();
	    ResultSet rs = stmt.executeQuery (strSql);
	  
	    JPanel panel = new JPanel(new GridLayout(10, 3));
	    panel.setBorder(BorderFactory.createTitledBorder("Frage"));
	  
	    while(rs.next()){
	    	//hier muss stehen, was er mit der datenbank machen soll, z.B auslesen
                System.out.print(rs.next("Name der Spalte in Anführungszeichen")) 
	    }
	    getContentPane().add(panel, BorderLayout.WEST);
	  }
	  catch(Exception e){
	    System.out.println(e.getMessage());
	  }

Wie du die Datenbank in der ODBC einträgst, ist ebenfalls ganz einfach:
Du lässt den Rechner einfach nach "ODBC" suchen. Dann müsstes du eine Verknüpfung mit dem Namen "Datenquellen (ODBC)" finden. Die öffnst du. Dann gehst du auf "Benutzer-DSN" und dann auf hinzufügen. Da wählst du "Driver do Microsoft Access (*.mdb)". dann gehst du auf Fertig stellen und es erscheint noch ein Fenster. In dem musst du den Pfad angeben, in der sich die ACCESS-Datenbank befinded. Klick einfach auf "Auswählen". Danach musst du der Datenbank nur noch einen Namen vergeben und schon hasst du es.

Ich hoffe ich konnte dir so weiterhelfen;-)

MFG
EGJ-Soldier
 
Zurück