empire Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Kennt sich jemand mit den JDBC Treiber von http://jtds.sourceforge.net/ aus? Und zwar krieg ich ihn nicht eingerichtet bzw. keine Connection. Und aus der Doku bzw FAQ werd ich auch net so schlau drauß? :confused: Zitieren
Habi Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Wo genau ist dein Problem? Bekommst du Fehlermeldungen? Zitieren
empire Geschrieben 21. Oktober 2002 Autor Geschrieben 21. Oktober 2002 Folgende Fehlermeldung java.sql.SQLException: No suitable driver Zitieren
Jaraz Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Hallo, dann findet der Compiler den Treiber nicht. Du musst deinen classpath um den Pfad zum jar erweitern. Gruß Jaraz Zitieren
Snowghost Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Schick doch mal ein bisschen Code, wie du den Treiber einbindest (also die DB-Connection erzeugst). Hast du den Treiber (das jar-Archiv) auch wirklich im Classpath? ciao Snowghost Zitieren
empire Geschrieben 21. Oktober 2002 Autor Geschrieben 21. Oktober 2002 Also ich habe mir für meine Anwendung eine DB klasse gebastelt. Irgendwie logisch... :beagolisc private void dbConnection(String DBuser,String DBpsw, String DBurl, String DBdriver) { try { //Class.forName("oracle.jdbc.driver.OracleDriver"); //Class.forName(DBdriver); Class.forName("net.sourceforge.jtds.jdbc.Driver"); } catch (ClassNotFoundException ex) { } catch(NullPointerException ex) { if(maincls == null) { logger.error("Class.forName -> " + ex); } } try { if (dbIsConnection()) { // verbunden }else{ //con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.176:1521:ORCL",maincls.DBuser,maincls.DBpsw); //con = DriverManager.getConnection(DBurl,DBuser,DBpsw); con = DriverManager.getConnection("jbdc:jtds:oracle://192.168.1.176:1521/ORCL",maincls.DBuser,maincls.DBpsw); } //stmt = con.createStatement(); stmt = tdsCon.createStatement(); } catch (java.lang.Exception ex) { logger.error(ex); } } sieht zwar nicht ganz optisch so gut aus. Aber die auskommentierten Zeilen sind die, wo es dann auch funzt, dann aber mit den JDBC treiber von Oracle Zitieren
Habi Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Äh, ich dachte du möchtest eine MS SQL Datenbank konnektieren? In deinem Source sieht das nach Oracle aus. Soweit ich das weiss kann doch jTDS nur MS SQL und Sybase oder lieg ich da falsch? Würde nämlich auch deine Fehlermeldung erklären. Für ne Oracle DB gibt es nämlich keinen passenden Treiber in jTDS... Zitieren
empire Geschrieben 21. Oktober 2002 Autor Geschrieben 21. Oktober 2002 hups. Das ist mir jetzt irgendwie peinlich. "wer lesen kann ist klar im Vorteil":rolleyes: Habs dann glatt auf einem SQLServer probiert. aber da springt er dann auch wieder aus der try catch raus. gleiche Fehlermeldung con = DriverManager.getConnection("jbdc:jtds:sqlserver://192.168.1.168:1433",maincls.DBuser,maincls.DBpsw); hab ich mal geändert. Zitieren
Habi Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Hab folgendes aus der jTDS FAQ: Why do I get a "java.sql.SQLException: No suitable driver" when trying to get a connection? The "No suitable driver" exception is thrown by the DriverManager when none of the registered Driver implementations recognizes the supplied URL. This means that you either did not register jTDS with the DriverManager (by doing a Class.forName("net.sourceforge.jtds.jdbc.Driver") first) or you mistyped the URL (e.g. "jbdc:jtds:..." instead of "jdbc:jtds:..."). Hast du das schon probiert? Zitieren
empire Geschrieben 21. Oktober 2002 Autor Geschrieben 21. Oktober 2002 @Habi jep hab ich.. Kann es vieleicht damit zusammen hängen das ich con = DriverManager.getConnection benutze. Aber JTDS hat kein eigenen DriverManager mitgeliefert. Warum ich das probiere, damit man nicht mit einer JDBC -Bridge auf SQL Server 6.5 zugreifen muss. Zitieren
Habi Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Probiers mal mit: DriverManager.registerDriver((Driver)Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance()); Enumeration e = DriverManager.getDrivers(); bevor du den Connect machst... Zitieren
empire Geschrieben 21. Oktober 2002 Autor Geschrieben 21. Oktober 2002 dann kommt folgende Fehlermeldung java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver Diesen Import musste ich noch machen: import com.internetcds.jdbc.tds.Driver; Zitieren
Habi Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Baust du eine "normale" Applikation oder ein Servlet/JSP?? Bei normaler Applikation: Hast du die jtds.jar im CLASSPATH?? Bei JSP: Hier must du die .jar in der Regel auch irgendwo einbinden, hängt aber vom Server ab (tomcat glaub ich web.xml) Zitieren
bozoo Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Hast Du den Kram zufällig auf einem Tomcat liegen? Dann müsstest Du den Treiber (also das .jar) in das /common/lib legen.... Zitieren
empire Geschrieben 21. Oktober 2002 Autor Geschrieben 21. Oktober 2002 normale App. und ich benutze kein Tomcat oder sonstiege Server. alles schön übern Editor. Zitieren
Habi Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Kann eigentlich nur am CLASSPATH liegen. Die Exception zeigt eigentlich nur, dass der Interpreter die Klasse nicht finden kann. Wie hast du jar den in den CLASSPATH eingebunden? Zitieren
Jaraz Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Hi, also try and error ist ja manchmal produktiv, aber in diesem Fall mit Sicherheit nicht. Habe mir das ganze mal downgeloadet. Im Zip -File, dass man auch downloaden kann und was die Sourcen enthält, findest du ne Klasse TestBase.java. Schau dir die mal an, dann kannst du nachvollziehen wie das ganze abläuft. Die Datei connection.properties.tmpl musst du dann mit deinen Werten füllen, und auf SQLServer 6.5 ändern. Das ganze ändert aber nichts daran, das das jtds-0.4.jar unbedingt im classpath sein muss. also "javac -classpath .;jdts-0.4.jar DeineKlasse.java" oder so ähnlich. Gruß Jaraz Zitieren
empire Geschrieben 22. Oktober 2002 Autor Geschrieben 22. Oktober 2002 guten morgen Habs nun hingekriegt. Class.forName("com.internetcds.jdbc.tds.Driver"); Das hatte ich voher falsch gehabt. Jetzt klappt das auch mit der Verbindung. Aber zum SQL Server 6.5 krieg ich keine Rückmeldung aber auch kein Fehler. Er hat dann ne cpu auslastung von 100 % und das wars. Aber ab 7.0 gehts. Das ist schon mal ein Erfolg. Weil wir selbst für 7.0 noch kein JDBC Treiber hatten. thx Zitieren
Habi Geschrieben 22. Oktober 2002 Geschrieben 22. Oktober 2002 Moin, für SQL Server 6.5 sollte es reichen, dass du ein Property setzt (siehe auch http://jtds.sourceforge.net/faq.html). Kanns hier in ermangelung eines 6.5er Servers nicht testen Zitieren
empire Geschrieben 22. Oktober 2002 Autor Geschrieben 22. Oktober 2002 Hab aber jetzt irgendwie nicht den Durchblick, wie ich da jetzt die Propertys setzte. getConnection("jdbc:freetds:sqlserver://Hostname/DBname",DBuser,DBpsw); :confused: Zitieren
fmarx2000 Geschrieben 23. Oktober 2002 Geschrieben 23. Oktober 2002 Originally posted by empire Hab aber jetzt irgendwie nicht den Durchblick, wie ich da jetzt die Propertys setzte. getConnection("jdbc:freetds:sqlserver://Hostname/DBname",DBuser,DBpsw); :confused: Na zum Beispiel so: String UserName = "USER=Hans"; String Password="PASSWORD=Alberts"; String strURL = "jdbc:freetds:sqlserver://Hostname/DBname;" strURL += UserName + ";" + Password getConnection( strURL , null, null); So denke ich kann man das machen. Frank Zitieren
empire Geschrieben 23. Oktober 2002 Autor Geschrieben 23. Oktober 2002 Hab das mal gemacht. Kommt follgende Meldung. java.sql.SQLException: Unknown packet subtype 0x20 So siehts aus: String UserName = "USER=" + DBuser; String Password="PASSWORD=" + DBpsw; String UrlTest = DBurl + ";"+ UserName + ";" + Password; con = DriverManager.getConnection(UrlTest,null,null); Zitieren
empire Geschrieben 29. Oktober 2002 Autor Geschrieben 29. Oktober 2002 So "Mädschens" Habs nun auch aufen 6.5 hingekriegt. Und zwar sieht der String nun so aus: jdbc:freetds:sqlserver://<server_name>/<database>;TDS=4.2 TDS=4.2 war die Lösung. :marine Na dann viel spaß mit den Treiber..... empire Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.