Zum Inhalt springen

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


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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.

Geschrieben

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?

Geschrieben

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

Geschrieben

Probiers mal mit:

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

Enumeration e = DriverManager.getDrivers();

bevor du den Connect machst...

Geschrieben

dann kommt folgende Fehlermeldung

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

Diesen Import musste ich noch machen:

import com.internetcds.jdbc.tds.Driver;

Geschrieben

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)

Geschrieben

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?

Geschrieben

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

Geschrieben

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

Geschrieben
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

Geschrieben

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

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...