Lautsprecher
Erfahrenes Mitglied
Hallo,
ich benutze momentan folgendes Programm für eine Anbindung an den
MS SQL-Server in unserer Firma.
Fehlermeldunge unter jtds-1.1 JDBC-Driver:
.
Fehlermeldung unter Microsoft JDBC-Driver:
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.
Helft mir da Bitte weiter, denn sonst bekommt unser Büro noch einen Schreikrampf.
Danke
Hasta luego,
ich benutze momentan folgendes Programm für eine Anbindung an den
MS SQL-Server in unserer Firma.
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.
Helft mir da Bitte weiter, denn sonst bekommt unser Büro noch einen Schreikrampf.
Danke
Hasta luego,