# SQL Server Treiber [DBNETLIB]



## Computerphobie (10. Mrz 2010)

Hallo,
ich versuche mcih gerade daran eine verbindung zu einer Datenbank zu erstellen, dabei stoße ich auf den fehler: Java.sql.SQL Exception: [Micrososft][ODBC SQL Server Driver][DBNETLIB]SQL Server exsistiert nicht oder Zugriff verweigert.

Hier auch der Jaca-Code

```
import java.sql.*;
public class DatenbankVersion2 {

  public static void main(String[] args) {
    Connection dbVerbindung=null;
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      System.out.println("Treiber erfolgreich geladen...");
    }
    catch (ClassNotFoundException e){
      System.out.println("Fehler beim laden des Treibers" +e);
      System.exit(0);
    }
    try {
      dbVerbindung = DriverManager.getConnection("jdbc:odbc:daten","","");
      System.out.println("Verbindung erfolgreich...");
      dbVerbindung.close();
      System.out.println("Verbindung geschlossen...");
    }
    catch(SQLException e){
      System.out.println("DB-Verbindung Fehler: "+e);
      System.exit(0);
    }
  }
}
```

Für vorschläge wie ich an das Problem rangehn könnte wäre ich sehr dankbar.


----------



## Atze (10. Mrz 2010)

hm, ich bin mir nicht sicher, aber dein host-pfad sieht komisch aus. vielleicht muss das ja in deinem fall auch, kenn mich mit den ms-dbs nicht aus.

aber mir würde da ip und port fehlen

vielleicht bringt


```
...getConnection("jdbc:odbc://localhost:3306/daten","","");
```

was!?


----------



## Computerphobie (10. Mrz 2010)

hmm leider nicht.

Es ist eine Übungsaufgabe, bin auch noch komplett neuling was Datenbankzugriff mit JDBC angeht.
Deine Methode hat aber komischerweiße dazu beigetragen das das programm viel schneller ausgeführt wird.


----------



## Atze (10. Mrz 2010)

viel schneller ausgeführt heißt, der fehler kommt schneller? die gleiche meldung? wo liegt die db denn? kann ja sein, dass sie nicht auf deinem localhost, bzw nicht auf port 3306 läuft.


----------



## Computerphobie (10. Mrz 2010)

Spanisch, 

Also die DB liegt in dem gleichen Ordner wie das Programm.
Mit localhoast hab ich da gar nichts gemacht.

Und ja der fehler wird schneller dargestellt.

Ich müsste mich wohl erst mal mit mySQL befassen oder?


----------



## Gast2 (10. Mrz 2010)

Das Beispiel von Atze ist ein typisches MySQL Beispiel. Da du ja einen MSSQL Server da stehen hast musst du eine andere URL nehmen.

[c]dbVerbindung = DriverManager.getConnection("jdbcdbc:daten","","");[/c]

Funktioniert auf GAR KEINEN Fall.

Woher soll der Treiber denn wissen wo er die Datenbank finden soll?  Also - läuft die Datenbank auf dem gleichen Rechner? Wenn ja auch welchem Port lauscht der Listener? Brauchst man einen dedizierten user/Passwort oder ist die Datenbank anonym ansprechbar?


----------



## Gast2 (10. Mrz 2010)

Connection Examples

Connect to the default database on the local computer by using a user name and password:

jdbc:sqlserver://localhost;user=MyUserName;password=*****; 


Lies mal weiter:
Building the Connection URL


----------



## Computerphobie (10. Mrz 2010)

Die Datenbank ist öffentlich ansprechbar ohne passwort. Ich werd mich da mal weiter reinlesen bei dem was du gepostet hattest.


----------



## Atze (10. Mrz 2010)

sorry, wie gesagt, mit den ms-produkten hab ich keine erfahrung, tut mir leid wegen den falschen infos


----------



## maki (10. Mrz 2010)

Empfehle den jTDS Treiber anstatt der JDBC-ODBC Krücke


----------



## Computerphobie (10. Mrz 2010)

hmmm...

löst der denn mein Problem?


----------



## bronks (11. Mrz 2010)

Computerphobie hat gesagt.:


> ... Also die DB liegt in dem gleichen Ordner wie das Programm ...


SQL Server ... hmmmm ... also ...

Wie heißt Die Datenbankdatei ganz genau?


----------



## Gast2 (11. Mrz 2010)

Computerphobie hat gesagt.:


> hmmm...
> 
> löst der denn mein Problem?



Treiber hin, Treiber her. Der Treiber ist solange uninteressant bis du uns sagen kannst auf welcher Maschine die Datenbankl läuft. 

Wenn sie auf deinem localenm Rechner läuft ist "localhost" schon mal nicht verkehrt, dann musst du nur noch rausfinden auf welchem port sie ansprechbar ist.

Schnelles googlen sagt der default port wäre 1433

also probier mal

```
...getConnection("jdbc:sqlserver://localhost:1433;databaseName=daten","","");
```


----------



## maki (11. Mrz 2010)

> Treiber hin, Treiber her.


Naja, wenn man die MS SQL Server JDBC Treiber URL für den JDBC-ODBC Treiber verwendet will, braucht man sich nicht wundern wenn es nicht geht


----------



## Computerphobie (11. Mrz 2010)

Alles viel zu kompliziert...
Habs gefunden :applaus:

Der fehler war im ODBC ich hatte zwar im ODBC Daten erzeugt aber die Datenbank nicht hinzugefügt ...

Das mit localhost ist ja für mich noch nicht von bedeutung wenn ich das in einem Ordner hab und nicht online oder?:rtfm:


----------

