Antwort
 
Themen-Optionen
Alt 20.09.2005, 10:39 Nach oben    #1
Lautsprecher
Gast
 
Beiträge: n/a
Standard Frage zu SQL-Anbindung und SSPI

Hallo,
ich benutze momentan folgendes Programm für eine Anbindung an den
MS SQL-Server in unserer Firma.
Das Pgm ist zu finden unter: www.torsten-horn.de/techdocs/java-sql.htm





Code:
 
import java.io.*; import java.sql.*; import net.sourceforge.jtds.util.SSPIJNIClient; public class DbShow { public static void main( String[] argv ) { String sDbDrv=null, sDbUrl=null, sTable=null, sUsr="", sPwd=""; if( 3 <= argv.length ) { sDbDrv = argv[0]; sDbUrl = argv[1]; sTable = argv[2]; if( 4 <= argv.length ) sUsr = argv[3]; if( 5 <= argv.length ) sPwd = argv[4]; } else { /* try { BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );*/ /*System.out.println( "Name des Datenbanktreibers eingeben (z.B. org.gjt.mm.mysql.Driver:(" );*/ sDbDrv = "net.sourceforge.jtds.jdbc.Driver"; /* System.out.println( "Url der Datenbank eingeben (z.B. jdbc:mysql://localhost:3306/MeineDb:(" );*/ sDbUrl = "jdbc:jtds:sqlserver://SDEUTTPDISYS1:1433:WU_Daten"; /* System.out.println( "Name der Tabelle eingeben (z.B. MeineTestTabelle:(" );*/ sTable ="Zeiterfassung"; /* System.out.println( "Benutzername (z.B. root:(" );*/ sUsr = ""; /* System.out.println( "Passwort (z.B. mysqlpwd:(" );*/ sPwd = ""; /*} catch( IOException ex ) { System.out.println( ex ); }*/ } if( null != sDbDrv && 0 < sDbDrv.length() && null != sDbUrl && 0 < sDbUrl.length() && null != sTable && 0 < sTable.length() ) { Connection cn = null; Statement st = null; ResultSet rs = null; try { // Select fitting database driver and connect: Class.forName( sDbDrv ); cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd ); st = cn.createStatement(); rs = st.executeQuery( "select * from " + sTable ); // Get meta data: ResultSetMetaData rsmd = rs.getMetaData(); int i, n = rsmd.getColumnCount(); // Print table content: for( i=0; i<n; i++ ) System.out.print( "+---------------" ); System.out.println( "+" ); for( i=1; i<=n; i++ ) // Attention: first column with 1 instead of 0 System.out.print( "| " + extendStringTo14( rsmd.getColumnName( i ) ) ); System.out.println( "|" ); for( i=0; i<n; i++ ) System.out.print( "+---------------" ); System.out.println( "+" ); while( rs.next() ) { for( i=1; i<=n; i++ ) // Attention: first column with 1 instead of 0 System.out.print( "| " + extendStringTo14( rs.getString( i ) ) ); System.out.println( "|" ); } for( i=0; i<n; i++ ) System.out.print( "+---------------" ); System.out.println( "+" ); } catch( Exception ex ) { System.out.println( ex ); } finally { try { if( null != rs ) rs.close(); } catch( Exception ex ) {} try { if( null != st ) st.close(); } catch( Exception ex ) {} try { if( null != cn ) cn.close(); } catch( Exception ex ) {} } } } // Extend String to length of 14 characters private static final String extendStringTo14( String s ) { if( null == s ) s = ""; final String sFillStrWithWantLen = " "; final int iWantLen = sFillStrWithWantLen.length(); final int iActLen = s.length(); if( iActLen < iWantLen ) return (s + sFillStrWithWantLen).substring( 0, iWantLen ); if( iActLen > 2 * iWantLen ) return s.substring( 0, 2 * iWantLen ); return s; } }


Fehlermeldunge unter jtds-1.1 JDBC-Driver:




Code:
 
I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property


Fehlermeldung unter Microsoft JDBC-Driver:
Code:
[Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL
Folgende Schritte wurden schon durch geführt:
Die jar's jtds-1.1, msutil, msbase, mssqlserver in die jre\lib\ext kopiert.
(Verwende momentan die jre_1_5_0_05.)
Diese jar's in das entsprechende Projekt unter Eclipse mit (Add External
Jar's etc.)
kopiert
ntlmauth.dll in das Windows\System32 kopiert und registriert.


Wir sind jetzt bei dem Punkt angelangt, dass wir über die SSPIJNIClient.java Klasse nachdenken, da diese ja die Verbindung zu ntlmauth.dll herstellen soll.
Weiß jemand wie es jetzt weiter geht, bzw. ob man die SSPIJNIClient.java anpassen muss, oder sie noch ins Projekt einbinden muss, oder ob diese nicht relevant ist, da es irgendwann mal automatisch laufen sollte.

Soweit ich das verstehe erfolgt die Anmeldung an dem SQL-Server per
Windows-Login. Bzw. Anmeldung unter einer Domain, die dann die Verbindung
mit dem SQL-Server herstellt.

Die Authentifizierungs-Einstellung am MS SQL Server lautet: Windows Only

Da ich noch Anfänger bin, ist mein Latein hier nun zu Ende, und ich hoffe mir kann jemand weiter helfen

Vielen Dank

Grüe






.







 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.09.2005, 22:21 Nach oben    #2
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 575
Standard

Also ich habe ja bisher nur mit mySQL gearbeitet, habe aber von verschiedenen Quellen schon gehört, dass man einen MS SQL-Server per ODBC anbinden sollte.
Also Java (JDBC) -> ODBC -> MS SQL

Zu deiner Fehlermeldung,
lass doch mal vor dem .getConnection den Inhalt von sDbUrl ausgeben. Vielleicht ist die URL ja tatsächlich falsch?
Ansonsten scheint ja ein nativer treiber nicht geladen zu sein, und DLL-Dateien in Zusammenhang mit Java machen mir Angst

Gruß
Sparrow
sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.09.2005, 08:48 Nach oben    #3
Lautsprecher
Gast
 
Beiträge: n/a
Standard

Hi Sparrow,
danke für deinen Tipp, habe ich allerdings schon berücksichtigt. Habe es gestern zu laufen gebracht. HURRA! Die ntlmauth.dll war nicht registriert,
seit dem läuft es!
Grüße


[
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
indireckte Frage zu Template system kampfgnom PHP-Programmierung 4 04.06.2007 04:12
Abkürzung des Wochentags in SQL, vgl. strftime in PHP Ben Datenbanken 4 12.04.2007 16:51
Frage zu Aufklapp-Menü mit CSS Hobbyuser HTML, XML und CSS 8 12.08.2006 18:41
Zugriff auf Wert des vorhergenden Datensatzes in einer SQL Abfrage Jay Datenbanken 5 17.07.2006 15:25
Performance Frage, ECHO vs. ?> <? + Breite MySQL Abfragen Kriskra PHP-Programmierung 19 14.12.2005 20:35


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:51 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44