Veröffentlicht 21. Oktober 200222 j 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:
21. Oktober 200222 j Hallo, dann findet der Compiler den Treiber nicht. Du musst deinen classpath um den Pfad zum jar erweitern. Gruß Jaraz
21. Oktober 200222 j 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
21. Oktober 200222 j 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
21. Oktober 200222 j Ä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...
21. Oktober 200222 j 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.
21. Oktober 200222 j 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?
21. Oktober 200222 j @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.
21. Oktober 200222 j Probiers mal mit: DriverManager.registerDriver((Driver)Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance()); Enumeration e = DriverManager.getDrivers(); bevor du den Connect machst...
21. Oktober 200222 j dann kommt folgende Fehlermeldung java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver Diesen Import musste ich noch machen: import com.internetcds.jdbc.tds.Driver;
21. Oktober 200222 j 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)
21. Oktober 200222 j Hast Du den Kram zufällig auf einem Tomcat liegen? Dann müsstest Du den Treiber (also das .jar) in das /common/lib legen....
21. Oktober 200222 j normale App. und ich benutze kein Tomcat oder sonstiege Server. alles schön übern Editor.
21. Oktober 200222 j 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?
21. Oktober 200222 j 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
22. Oktober 200222 j 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
22. Oktober 200222 j 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
22. Oktober 200222 j Hab aber jetzt irgendwie nicht den Durchblick, wie ich da jetzt die Propertys setzte. getConnection("jdbc:freetds:sqlserver://Hostname/DBname",DBuser,DBpsw); :confused:
23. Oktober 200222 j 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
23. Oktober 200222 j 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);
29. Oktober 200222 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.