|
| JDBC driver spørgsmål Fra : Søren Augustesen |
Dato : 06-12-01 15:14 |
|
Hej
Jeg forsøger at omme i kontakt med en MS SQL database via Java JDBC. Jeg
har fået fat i en driver som består af 6 .class filer i en .jar fil. Jeg
har lagt denne .jar fil i samme mappe som de andre jar filer min
compiler bruger (c:\jdk1.3.1/jre/lib/jdbc.jar), og jag har tilføjet den
til listen over jar filer compileren har adgang til (jeg bruger JCreater
LE).
Min kode:
package myprojects.testforbin;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class Testforbin {
public static void main(String args[]) {
String url = "jdbc:inetdae:wwwproxy.kom.auc.dk:3128";
String createString;
createString = "SELECT * FROM Itemhist;";
Connection con;
Statement stmt;
try {
Class.forName("com.inet.tds.TdsDriver");
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
con = DriverManager.getConnection(url, "sa", "");
stmt = con.createStatement();
stmt.executeUpdate(createString);
stmt.close();
con.close();
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
}
}
kompilerer helt ok, men når jeg prøver at køre den får jeg følgende
fejl:
"ClassNotFoundException: com.inet.tds.TdsDriver" (det er det navn readme
filen til driveren siger man skal bruge).
"SQLException: No suitable driver"
Er der nogle der har nogle ideer til hvad der kan være galt???
Alle forslag modtages da jeg er løbet tør for ideer.
MVH
Søren Augustesen
| |
Dennis Thrysøe (06-12-2001)
| Kommentar Fra : Dennis Thrysøe |
Dato : 06-12-01 15:40 |
|
Hedder en af de 6 class filer '
com.inet.tds.TdsDriver
'?
Er wwwproxy.kom.auc.dk ikke en linux kasse? Er der en MS SQL server derpå?
-dennis
Søren Augustesen wrote:
>Hej
>
>Jeg forsøger at omme i kontakt med en MS SQL database via Java JDBC. Jeg
>har fået fat i en driver som består af 6 .class filer i en .jar fil. Jeg
>har lagt denne .jar fil i samme mappe som de andre jar filer min
>compiler bruger (c:\jdk1.3.1/jre/lib/jdbc.jar), og jag har tilføjet den
>til listen over jar filer compileren har adgang til (jeg bruger JCreater
>LE).
>
>Min kode:
>
[SNIP]
| |
Søren Augustesen (06-12-2001)
| Kommentar Fra : Søren Augustesen |
Dato : 06-12-01 16:29 |
|
De 6 class filer hedder:
-SqlFunctions.class
-TdsConnection.class
-TdsDatabaseMetaDate.class
-TdsDriver.class
-TdsResultSet.class
-TdsResultSetMetaData.class
-TdsStatement.class
Jeg har forsøgt med 'TdsDriver' i stedet for 'com.inet.tds.TdsDriver',
men det resulterede også i fejlmeddeleser ("Exception in thread "main"
java.lang.NoClassDefFoundError: TdsDriver (wrong name:
com/inet/tds/TdsDriver)").
wwwproxy.kom.auc.dk er en linux kasse. MS SQL databasen ligger på en
extern server der er tilsluttet netværket.
MVH Søren Augustesen
Dennis Thrysøe wrote:
>
> Hedder en af de 6 class filer '
>
> com.inet.tds.TdsDriver
>
> '?
>
> Er wwwproxy.kom.auc.dk ikke en linux kasse? Er der en MS SQL server derpå?
>
> -dennis
>
> Søren Augustesen wrote:
>
> >Hej
> >
> >Jeg forsøger at omme i kontakt med en MS SQL database via Java JDBC. Jeg
> >har fået fat i en driver som består af 6 .class filer i en .jar fil. Jeg
> >har lagt denne .jar fil i samme mappe som de andre jar filer min
> >compiler bruger (c:\jdk1.3.1/jre/lib/jdbc.jar), og jag har tilføjet den
> >til listen over jar filer compileren har adgang til (jeg bruger JCreater
> >LE).
> >
> >Min kode:
> >
> [SNIP]
| |
Dennis Thrysøe (06-12-2001)
| Kommentar Fra : Dennis Thrysøe |
Dato : 06-12-01 16:40 |
|
Søren Augustesen wrote:
>De 6 class filer hedder:
>-SqlFunctions.class
>-TdsConnection.class
>-TdsDatabaseMetaDate.class
>-TdsDriver.class
>-TdsResultSet.class
>-TdsResultSetMetaData.class
>-TdsStatement.class
>
>Jeg har forsøgt med 'TdsDriver' i stedet for 'com.inet.tds.TdsDriver',
>men det resulterede også i fejlmeddeleser ("Exception in thread "main"
>java.lang.NoClassDefFoundError: TdsDriver (wrong name:
>com/inet/tds/TdsDriver)").
>
Ligger filerne som de skal i jar filen? (Under com/inet/tds/ folderen).
>wwwproxy.kom.auc.dk er en linux kasse. MS SQL databasen ligger på en
>extern server der er tilsluttet netværket.
>
Det ser bare lidt spøjst ud at du fortæller din JDBC driver om en
www-proxy. Med mindre selvfølgelig driveren kan et eller andet smart
http-tunneling gennem en http proxy.
-dennis
| |
Ukendt (06-12-2001)
| Kommentar Fra : Ukendt |
Dato : 06-12-01 19:21 |
|
Hej Søren,
Din driver er ikke på din classpath når du køre programmet - det er muligt
at din compiler kan finde den, men det kan dit program ikke når du
eksekverer det !
Hvis du bruger JCreator så opret en reference til jar-filen hvor din driver
ligger i ( det lyder forøvrigt meget underligt at Inet's driver kun er på 6
klasser, der burde være langt flere ) under "Project settings" ved at
tilføje et "Required library", istedet for at blande den sammen med JDK'en.
Søren Staun Jørgensen
"Søren Augustesen" <august@kom.auc.dk> skrev i en meddelelse
news:3C0F7D2B.4EA11E3E@kom.auc.dk...
> Hej
>
> Jeg forsøger at omme i kontakt med en MS SQL database via Java JDBC. Jeg
> har fået fat i en driver som består af 6 .class filer i en .jar fil. Jeg
> har lagt denne .jar fil i samme mappe som de andre jar filer min
> compiler bruger (c:\jdk1.3.1/jre/lib/jdbc.jar), og jag har tilføjet den
> til listen over jar filer compileren har adgang til (jeg bruger JCreater
> LE).
>
> Min kode:
>
> package myprojects.testforbin;
>
> import java.awt.*;
> import java.awt.event.*;
> import java.sql.*;
> public class Testforbin {
> public static void main(String args[]) {
> String url = "jdbc:inetdae:wwwproxy.kom.auc.dk:3128";
> String createString;
> createString = "SELECT * FROM Itemhist;";
> Connection con;
> Statement stmt;
>
> try {
> Class.forName("com.inet.tds.TdsDriver");
> } catch(java.lang.ClassNotFoundException e) {
> System.err.print("ClassNotFoundException: ");
> System.err.println(e.getMessage());
> }
>
> try {
> con = DriverManager.getConnection(url, "sa", "");
> stmt = con.createStatement();
> stmt.executeUpdate(createString);
> stmt.close();
> con.close();
> } catch(SQLException ex) {
> System.err.println("SQLException: " + ex.getMessage());
> }
> }
> }
>
> kompilerer helt ok, men når jeg prøver at køre den får jeg følgende
> fejl:
> "ClassNotFoundException: com.inet.tds.TdsDriver" (det er det navn readme
> filen til driveren siger man skal bruge).
> "SQLException: No suitable driver"
>
> Er der nogle der har nogle ideer til hvad der kan være galt???
>
> Alle forslag modtages da jeg er løbet tør for ideer.
>
> MVH
> Søren Augustesen
| |
Jan Oksfeldt Jonasen (06-12-2001)
| Kommentar Fra : Jan Oksfeldt Jonasen |
Dato : 06-12-01 18:55 |
|
Søren Augustesen <august@kom.auc.dk> wrote:
> Hej
>
> Jeg forsøger at omme i kontakt med en MS SQL database via Java JDBC. Jeg
> har fået fat i en driver som består af 6 .class filer i en .jar fil. Jeg
> har lagt denne .jar fil i samme mappe som de andre jar filer min
> compiler bruger (c:\jdk1.3.1/jre/lib/jdbc.jar), og jag har tilføjet den
> til listen over jar filer compileren har adgang til (jeg bruger JCreater
> LE).
>
Kender ikke meget til JCreator, men burde skråstregerne ikke vende om?
Ellers, driveren du bruger er vist den fra inetsoftware, og er iøvrigt
et fremragende produkt, klassen du leder efter findes muligvis i en
anden .jar kaldet Opta2000.jar. Hvor har du fået din udgave fra? Er det
en af deres demo versioner? Prøv også at åbne din jdbc.jar fil med
f.eks. WinZip og kig på direktorie strukturen deri, det skal (hvis dit
eksempel skal virke) være et direktorie forløb
com\inet\tds\TdsDriver.class. Prøv evt. også med driveren
com.inet.pool.PoolDriver med url
jdbc:inetpool:hostnavn:port:database=databasenavn
--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk
If I wanted culture, I'd eat yogurt.
| |
Søren Augustesen (07-12-2001)
| Kommentar Fra : Søren Augustesen |
Dato : 07-12-01 10:45 |
|
Hej
Tak for svarene. Det viste sig at være en fejl i jar-filen men den er
rette nu og programmet kan finde driveren.
MVH
Søren Augustesen
Søren Augustesen wrote:
>
> Hej
>
> Jeg forsøger at omme i kontakt med en MS SQL database via Java JDBC. Jeg
> har fået fat i en driver som består af 6 .class filer i en .jar fil. Jeg
> har lagt denne .jar fil i samme mappe som de andre jar filer min
> compiler bruger (c:\jdk1.3.1/jre/lib/jdbc.jar), og jag har tilføjet den
> til listen over jar filer compileren har adgang til (jeg bruger JCreater
> LE).
>
> Min kode:
>
> package myprojects.testforbin;
>
> import java.awt.*;
> import java.awt.event.*;
> import java.sql.*;
> public class Testforbin {
> public static void main(String args[]) {
> String url = "jdbc:inetdae:wwwproxy.kom.auc.dk:3128";
> String createString;
> createString = "SELECT * FROM Itemhist;";
> Connection con;
> Statement stmt;
>
> try {
> Class.forName("com.inet.tds.TdsDriver");
> } catch(java.lang.ClassNotFoundException e) {
> System.err.print("ClassNotFoundException: ");
> System.err.println(e.getMessage());
> }
>
> try {
> con = DriverManager.getConnection(url, "sa", "");
> stmt = con.createStatement();
> stmt.executeUpdate(createString);
> stmt.close();
> con.close();
> } catch(SQLException ex) {
> System.err.println("SQLException: " + ex.getMessage());
> }
> }
> }
>
> kompilerer helt ok, men når jeg prøver at køre den får jeg følgende
> fejl:
> "ClassNotFoundException: com.inet.tds.TdsDriver" (det er det navn readme
> filen til driveren siger man skal bruge).
> "SQLException: No suitable driver"
>
> Er der nogle der har nogle ideer til hvad der kan være galt???
>
> Alle forslag modtages da jeg er løbet tør for ideer.
>
> MVH
> Søren Augustesen
| |
|
|