# SQL jdbc Verbindung



## Champion1908 (26. Juli 2010)

Liebe Mitglieder!
Ich hab mich heut erst regestriert und hier kommt meine erste Frage.
Wie Verbinde ich mich zu der Instanz "data" eines Servers. Ich hab hier einmal folgenden Code:

public void create()
{
		try
		{
			String url = "jdbc:sqlserver://dfs01/data:1433"; //ich glaub, da ist der Fehler
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			Connection conn = DriverManager.getConnection(url, "ba", "klaxx");
			Statement s = conn.createStatement();
			s.executeUpdate("INSERT INTO [Monitoring.dbo.t_email_monitoring] (absender, kundenname, modul,           

              datumsent, datumreceived, emailtext, success)" +
					"VALUES " +
					"('" + list.get(6).toString() + "', '" + list.get(1) + "', '" + list.get(2)
					+ "', '" + list.get(4) + "', '" + list.get(5) + "', '" + list.get(3)
					+ "', '" + list.get(0) + "')");
			conn.close();
			}
			catch(SQLException sqle)
			{	
				JOptionPane.showMessageDialog(null, "SQLException: " + sqle.getMessage());
			}
			catch(ClassNotFoundException cnfe)
			{
				JOptionPane.showMessageDialog(null, "Class not found: " + cnfe.getMessage());
			}
			catch(Exception ex)
			{
				JOptionPane.showMessageDialog(null, "Exception: " + ex.getMessage());
			}
		} 
}

Jedoch wirft er dann immer eine Exception:

Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'dfs01/data', Port 1433. Fehler: 'null. Überprüfen Sie die Verbindungseigenschaften, und stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird, die TCP/IP-Verbindungen am Port annimmt. Überprüfen Sie außerdem, dass die TCP-Verbindungen mit dem Port nicht von einer Firewall 

danke schon im vorraus


----------



## Champion1908 (26. Juli 2010)

OK, bin jetzt selbst auf Etwas draufgekommen:
...//dfs01\\data:1433 muss es lauten.

Er findet jedoch immer noch nicht [Monitoring.dbo.t_email_monitoring]


----------



## DirkHo (26. Juli 2010)

Hallo,

ich verwende eigentlich immer Hibernate, wenn ich mittels Java auf Datenbanken losgehe. Allerdings würde ich mal tippen, dass die [] um den Tabellennamen weg müssen?!

Viele Grüße,

Dirk


----------



## Champion1908 (26. Juli 2010)

Danke auf jeden Fall für die Antwort, doch leider hab ich das auch schon probiert (Die [] gehören außerdem nur um Monitoring, glaube ich. Ich werde einfach weiterprobieren, falls jemand eine Antowort weiß bitte posten.


----------



## Akeshihiro (26. Juli 2010)

Die Zeile hier 





> String url = "jdbc:sqlserver://dfs01/data:1433";


 scheint tatsächlich falsch zu sein. Mir kam es komisch vor, dass du den Port bei dem Datenbanknamen und nicht beim Server angibst und hab da mal nachgegoolet und meine Vermutung ist richtig.

Also laut Internet müsste die Zeile so richtig sein:

```
String url = "jdbc:microsoft:sqlserver://dfs01:1433/data";
```


----------



## Champion1908 (27. Juli 2010)

Akeshihiro hat gesagt.:


> ```
> String url = "jdbc:microsoft:sqlserver://dfs01:1433/data";
> ```


Da hab ich aber leider nicht den passenden Treiber: 
SQLException: No suitable driver found for jdbc:microsoft:sqlserver....
Ich glaub, mit dem //dfs01\\data:1433 ist es eh gegangen,
Wenn ich die Portnummer zum Server dazuschreib, bekomme ich folgende Exception:
SQLException: Ungültige Portnummer: 1433/data
ich hab jetzt eher Probleme mit 
[Monitoring.dbo.t_email_monitoring]


----------



## Champion1908 (27. Juli 2010)

ok, ein ganz neuer code für die url:

"jdbc:sqlserver://dfs01:1433;instanceName=data;databaseName=Monitoring"

und unten:

Insert INTO t_email_monitoring....

neue Exception:

SQL Exception: Die von der Anmeldung angeforderte "Monitoring"-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.


----------



## Champion1908 (27. Juli 2010)

OK, ich habs!
Die url lautet:
String url = "jdbc:sqlserver://dfs01;instanceName=data;databaseName=Monitoring"

und unten:

statement.executeUpdate("INSERT INTO t_email_monitoring....)

Danke auf jeden Fall für die Hilfe


----------

