Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

kennt sich hier jemand mit dem jdbc treiber ....

Empfohlene Antworten

Veröffentlicht

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:

Wo genau ist dein Problem? Bekommst du Fehlermeldungen?

Folgende Fehlermeldung

java.sql.SQLException: No suitable driver

Hallo,

dann findet der Compiler den Treiber nicht. Du musst deinen classpath um den Pfad zum jar erweitern.

Gruß Jaraz

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

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

Ä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...

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.

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?

@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.

Probiers mal mit:

DriverManager.registerDriver((Driver)Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance());

Enumeration e = DriverManager.getDrivers();

bevor du den Connect machst...

dann kommt folgende Fehlermeldung

java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver

Diesen Import musste ich noch machen:

import com.internetcds.jdbc.tds.Driver;

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)

Hast Du den Kram zufällig auf einem Tomcat liegen?

Dann müsstest Du den Treiber (also das .jar) in das /common/lib legen....

normale App.

und ich benutze kein Tomcat oder sonstiege Server.

alles schön übern Editor.

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?

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

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

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

Hab aber jetzt irgendwie nicht den Durchblick, wie ich da jetzt die Propertys setzte.

getConnection("jdbc:freetds:sqlserver://Hostname/DBname",DBuser,DBpsw);

:confused:

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

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);

So "Mädschens" :D

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.