SQL-Server Anbindung funktioniert nicht so ganz

Lautsprecher

Erfahrenes Mitglied
Hi,
ich habe ein Problem und zwar immer wenn ich mein Pgm zur SQL-Anbindung von
http://www.torsten-horn.de/techdocs/java-sql.htm ausführe, bekomme ich folgende Fehlermeldung:


[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection.

Ist gibt aber keinen Benutzername und auch kein Passwort in der Datenbank, damit ich auf die entsprechenden Tabellen zugreifen kann.

Was ist falsch, bzw. fehlt noch. Oder muss ich in der Datenbank ein Pswd einrichten?
Grüße
 
Hi Thomas,
bin gerade dabei deinen Code auszuprobieren. Habe unter Eclipse ein neues Projekt angelegt und unter Add External Jar's die jtds-1.1.jar hinzugefügt. Die jtds-1.1.jar liegt momentan nicht unter der jre\lib\ext aber das dürfte ja kein Problem sein.

Allerdings gibt es mit deiner Importanweisung-Probleme:

Code:
import net.sourceforge.jtds.jdbcx.TdsDataSource;

Deshalb kann er auch mit TdsDataSource nichts anfangen.
Code:
TdsDataSource datasource = new TdsDataSource();

Was muss ich noch einstellen, damit die Importanweisung funktioniert?

Zum anderen noch:
Ist für den Zugriff unbedingt ein Benutzername und ein Passwort am MS SQL Server notwendig. Laut meinem Arbeitskollegen gibt es keinen und die Visual Basic-Anwendungen können ohne Probleme zugreifen.

Grüße
Daniel
 
Hi Thomas,
das Problem mit der import-Anweisung habe ich gelost, anscheinend heißt es in der Version 1.1 nun JtdsDataSource anstatt TdsDataSource.

Beim Ausführen deines Pgm's erhalte ich jedoch jetzt folgende Fehlermeldung.


Code:
java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.
	at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:603)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:335)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
	at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:188)
	at net.sourceforge.jtds.jdbcx.JtdsDataSource.getConnection(JtdsDataSource.java:277)
	at net.sourceforge.jtds.jdbcx.JtdsDataSource.getConnection(JtdsDataSource.java:132)
	at Main.doDBStuff(Main.java:63)
	at Main.main(Main.java:41)
Caused by: java.io.IOException: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.
	at net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1865)
	at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:576)
	... 7 more


Laut meinem Arbeitskollegen stimmen folgende Angaben:
Code:
datasource.setDatabaseName("WU_Daten"); 
datasource.setServerName("SDEUTTPDISYS1");
datasource.setUser(""); //Benutzername im SQL Server mit Zugriff auf pubs
datasource.setPassword(""); // Benutzerpasswort im SQL Server
datasource.setPortNumber(1433); //Standard MS SQL Server 2000 Port
datasource.setCharset("UTF-8"); //Mein aktuell beim MS SQL Server 2000 
	                                // eingestelltes Zeichen Encoding (Wichtig!)
datasource.setDescription("JTDS Datasource");

jedoch beim Charset sind wir uns nicht sicher, wo bekommt man die Einstellung raus beim MS SQL Server?
 
Hallo!

Kann es sein, dass du versuchst die Authentifizierung per NTLM durchzuführen? Dazu brauchst du eine zusätzliche dll die du entweder ins Windows\System32 Verzeichnis oder in ein Verzeichnis welches im java.library.path steht, kopieren.

Weshalb stellst du nicht einfach den SQL Server auf SQL Authentifizierung? Dann klappts auch ohne spezielle DLL...

Gruß Tom
 
Hi,
also ich bekomme immer noch die oben genannte Fehlermeldung. Mein Chef hat gemeint, am Server darf man nichts verstellen.
Ob es eine NTLM Authen. ist weiß ich nicht, wo bekomme ich das raus?
Welche dll brauche ich dann noch im Windows-Verzeichnis?
Die Fehlermeldung hat jetzt aber nichts mehr damit zu tun, dass er jtds-1.1.jar im Project nicht findet oder
 
Hallo!

Im jtds.jar (1.1) findest du (wenn du's mit Winzip öffnest) eine Dll mit dem Namen:
ntlmauth.dll -> kopier diese einfach mal in dein Windows\System32 - Verzeichnis.

Gruß Tom
 
Hi Thomas,
hab ich gemacht aber es kommt immer noch die Selbe Fehlermeldung.
Kann es auch an unvollständigen DatabaseName, etc. liegen?
ODBC greift doch über eine Windows-Domain auf die Server zu. Muss man dann also die
Domain auch noch angeben?


Code:
JtdsDataSource datasource = new JtdsDataSource();
datasource.setDatabaseName("WU_Daten"); 
datasource.setServerName("SDEUTTPDISYS1");
datasource.setUser(""); //Benutzername im SQL Server mit Zugriff auf pubs
datasource.setPassword(""); // Benutzerpasswort im SQL Server
datasource.setPortNumber(1433); //Standard MS SQL Server 2000 Port
datasource.setCharset("UTF-8"); //Mein aktuell beim MS SQL Server 2000 
		                                // eingestelltes Zeichen Encoding (Wichtig!)
datasource.setDescription("JTDS Datasource");
 
Zurück