Java und der MS SQL SERVER

Hallo,
ich versuche jetzt seit geraumer Zeit mit Java zu meinem SQL Server zu connecten. Habe schon diese Seite http://www.torsten-horn.de/techdocs/java-sql.htm#JDBC

versucht umzusetzen aber ohne Erfolg.

Hat jemand von euch das schon mal gemacht?
Die größten Probleme sind für mich die Treiberinstalltion.

Die Benutzervariablen zu Java habe ich gesetzt aber wie schreib ich den JBDC Treiber in den Classpath so wie es in der Anleitung auf der oben genannten Seite steht.

Bitte Helft mir, ich verzweifle.

Danke grüße Basti

Hallo,

du kannst auf SQL-Server mit ODBC zugreifen oder (viel besser) mit dem jtds-Treiber, den du kostenlos im Netz (google halt mal) findest. DIe Installation ist wirklich einfach.

Class.forName("net.sourceforge.jtds.jdbc.Driver");
DriverManager.getConnsection("jdbc:jtds:sqlserver://:/",user, pwd);

dabei ist dbhost z.B. localhost wenn die DB lokal auf deinem Rechner liegt
dbport ist normalerweise 1433
dbsid setzt sich zusammen aus ;instance=>servername>
den zweiten Teil brauchst du nur, wenn du dem Server einen eigenen Namen gegeben hast.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ja so einfach die sein mag, ich bekomme es leider nicht hin!!!
was mache ich denn mit dem Treiber, nachdem ich ihn entpackt habe???

danke gruß Basti

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

mit was entwickelst du? die jar muss in den classpath…

mit eclipse und mir ist es jetzt auch wieder eingefallen wie ich das importiere.
ich habe den Microsoft SQL Server 2005 JDBC Driver benutzt
jetzt kommt wenn ich eine Connection aufbauen will.

Class.forName(„com.microsoft.sqlserver.jdbc.SQLServerDriver“);
Connection con = DriverManager.getConnection(„jdbc:sqlserver://******/LOCAL;user=admin;password=*****“);

Exception in thread „main“ com.microsoft.sqlserver.jdbc.SQLServerException: Es konnte keine TCP/IP-Verbindung zu Host „“ hergestellt werden.

hmm…

mit was entwickelst du? die jar muss in den classpath…

Exception in thread „main“
com.microsoft.sqlserver.jdbc.SQLServerException: Es konnte
keine TCP/IP-Verbindung zu Host „“ hergestellt werden.

dann stimmt entweder der servername nicht, der port ist falsch, du hast eine firewall die den port blockiert oder der server ist down. mkehr fällt mir gerad nicht ein.

Hallo,

ich tue die jar-Datei immer in lib/ext von meinem Java.
Du kannst sie natürlich auch irgendwohin legen und den Pfad im classpath angeben.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

server nicht down, port dürfte auch nicht blockiert sein, firewall des pcs inaktiv.
server name habe ich genau so benutzt wie er im systray vom sql server angezeigt wird und ich es bei php schon benutzt hatte.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

also wenn du genau das machst, was da in der (super) Beschreibung steht kann eigentlich gar nichts schief gehen.

Beim Namen der DB steht KEIN DBServername, sondern wirklich der Datenbank.

Du kannst auch per OSQL an die DB ran:
In der Eingabeaufforderung:
osql -U user -P passwd -S server\dbservername -d master
server/dbservername ist genau das, was in dem ico steht, wenn du mit der Maus drüber gehst.

Beim JDBC Treiber gibst du nur master an (für die master-datenbank oder eben die, die du angelegt hast.
Wenn du die Option: mehrere Server beim Installieren gewählt hast, dann hat der dbserver noch einen Zusatz
dbname;instance=servername
Wobei du dbname durch deine Datenbank ersetzen musst und servername durch den namen deines Datenbankservers OHNE den Teil vor dem Backslash.
Instance ist ein Schlüsselwort.

DIeser Teil ist etwas undurchsichtig und schlecht dokumentiert.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser(„admin“);
ds.setPassword("*****");
ds.setServerName("//W4DE3FSY0000351/LOCAL");
ds.setPortNumber(1433);
ds.setDatabaseName(„blub“);
Connection con = ds.getConnection();
con.close();

so sieht meine klasse im Moment aus.
Meine Datenbank auf dem Server heißt blub.
Und den Namen hab ich aus dem SQL Server Systray kopiert.
Bei php hat das ganze auch mit diesem „ConnectNamen“ funktioniert.
Ma weiter meinen besten Freund Google benutzen.

danke für eure Hinweise

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Also der connect funktionierte nicht, weil es keine TCP/Ip einstellungen gab, also der server hat sie nicht geladen und somit konnte ich per jdbc nicht connecten.
Hilfe war Service Pack 4 für den Server und jetzt bekomm ich eine Connection.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser(„admin“);
ds.setPassword("*****");
ds.setServerName("//W4DE3FSY0000351/LOCAL");
ds.setPortNumber(1433);
ds.setDatabaseName(„blub“);
Connection con = ds.getConnection();
con.close();

Connection cn;
Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://W4DE3FSY0000351:1433/blub;instance=LOCAL", "admin", "\*\*\*\*\*" );

Gruß

Peter

so sieht meine klasse im Moment aus.
Meine Datenbank auf dem Server heißt blub.
Und den Namen hab ich aus dem SQL Server Systray kopiert.
Bei php hat das ganze auch mit diesem „ConnectNamen“
funktioniert.
Ma weiter meinen besten Freund Google benutzen.

danke für eure Hinweise

Hallo,

also wenn du genau das machst, was da in der (super)
Beschreibung steht kann eigentlich gar nichts schief gehen.

Beim Namen der DB steht KEIN DBServername, sondern wirklich
der Datenbank.

Du kannst auch per OSQL an die DB ran:
In der Eingabeaufforderung:
osql -U user -P passwd -S server\dbservername -d master
server/dbservername ist genau das, was in dem ico steht, wenn
du mit der Maus drüber gehst.

Beim JDBC Treiber gibst du nur master an (für die
master-datenbank oder eben die, die du angelegt hast.
Wenn du die Option: mehrere Server beim Installieren gewählt
hast, dann hat der dbserver noch einen Zusatz
dbname;instance=servername
Wobei du dbname durch deine Datenbank ersetzen musst und
servername durch den namen deines Datenbankservers OHNE den
Teil vor dem Backslash.
Instance ist ein Schlüsselwort.

DIeser Teil ist etwas undurchsichtig und schlecht
dokumentiert.

Gruß

Peter

Hallo,
ich versuche jetzt seit geraumer Zeit mit Java zu meinem SQL
Server zu connecten. Habe schon diese Seite
http://www.torsten-horn.de/techdocs/java-sql.htm#JDBC

versucht umzusetzen aber ohne Erfolg.

Hat jemand von euch das schon mal gemacht?
Die größten Probleme sind für mich die Treiberinstalltion.

Die Benutzervariablen zu Java habe ich gesetzt aber wie
schreib ich den JBDC Treiber in den Classpath so wie es in der
Anleitung auf der oben genannten Seite steht.

Bitte Helft mir, ich verzweifle.

Danke grüße Basti

ich dachte ich hätte schon meine Lösung geschrieben.
Der Sql Server hat den Port nicht über TCP/Ip gesendet, deswegen konnte ich mit JDBC nicht zugreifen. Service Pack 4 hat geholfen.

soweit funkt jetzt alles.

danke an alle die Geholfen haben.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]