Avatar billede tigertool Nybegynder
23. december 2003 - 02:50 Der er 29 kommentarer og
1 løsning

Fejl ved conn til InterBase

Jeg arbejder med at lave en database forbindelse fra Java til InterBase. Jeg har været inde på borland.com og downloade InterClient, installeret dette (både InterClient og InterServer).
Jeg har så en InterBase db liggende i c:\ som hedder test.gdb. Jeg har testet denne database på en anden maskine og der virker denne fint.

Jeg får konstant en exeption når jeg forsøger at afvikle min kode i JBuilder Personal.

Derfor besluttede jeg mig for at prøve det "Communication Diagnostics" der fulgte med til InterClient. Jeg får denne fejl:
------------------------------------------------
InterClient Release:                  2.0.1 Test Build, Client/Server Edition
InterClient compatible JRE versions:  1.2
InterClient compatible IB versions:    5, 6
InterClient driver name:              interbase.interclient.Driver
InterClient JDBC protocol:            jdbc:interbase:
InterClient JDBC protocol version:    20001
InterClient expiration date:          no expiration date

Testing database URL jdbc:interbase://localhost/c:/test.gdb.

***** Error or Exception Occurred *****
java.lang.VerifyError: (class: interbase/interclient/ErrorKey, method: _$372 signature: (Ljava/lang/String;Ljava/lang/String;I)V) Expecting to find unitialized object on stack
***** Installation problem detected! *****
-------------------------------------------------

Mit spørgsmål er nu, hvad gør jeg forkert? Jeg har set om der var noget der kørte på port 3060 og det var der. :(
Avatar billede _carsten Nybegynder
23. december 2003 - 07:40 #1
Det er ikke noget jeg ved noget om, men du skriver localhost og port 3060, i mine øre klinger localhost og port 3306 bedre

Har du prøvet:

jdbc:interbase://localhost/test

eller

jdbc:interbase://localhost:3306//test
Avatar billede _carsten Nybegynder
23. december 2003 - 07:48 #2
Hov, den sidste skulle være:  jdbc:interbase://localhost:3306/test

Men det er måske et installations problem
***** Installation problem detected! *****
Avatar billede arne_v Ekspert
23. december 2003 - 08:29 #3
3306 e rvel MySQL ikke Interbase ?
Avatar billede _carsten Nybegynder
23. december 2003 - 10:07 #4
Jow - det kan vi vel hurtigt blive enige om
Avatar billede arne_v Ekspert
23. december 2003 - 10:12 #5
Interbase bruger faktisk port 3060
Avatar billede arne_v Ekspert
23. december 2003 - 10:14 #6
URL ser OK ud.

Hvilken Exception får du i dit Java program ?
Avatar billede soelvpil Nybegynder
23. december 2003 - 10:25 #7
Kunne det have noget at gøre med JDK-versioner?
Hvilken JDK bruger du?
Avatar billede lirekassemanden Nybegynder
23. december 2003 - 14:06 #8
Jeg bruger JDK 1.4.0

Jeg har lige prøvet med dette kode:
-----------------------------------------
import java.sql.*;

public class JdbcTest1 {

    public static void main(String[] args) {
        try {

            // Step 1: Load the JDBC driver.
            Class.forName("interbase.interclient.Driver");

            // Step 2: Establish the connection to the database.
            String url = "jdbc:odbc:contact_mgr";
            Connection conn = DriverManager.getConnection("jdbc:interbase://localhost/C:/test.gdb","sysdba","xxxxxx");

        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
}
------------------------------------------------------------
Jeg får denne fejl:
'interbase.interclient.Driver'
Avatar billede tigertool Nybegynder
23. december 2003 - 14:11 #9
Kan godt selv, lirekassemanden!!

Men, ja.. det er den fejl vi får.
Avatar billede arne_v Ekspert
23. december 2003 - 14:13 #10
Det lyder som om I ikke har Interbase JDBC driver jar filen i classpath !
Avatar billede arne_v Ekspert
23. december 2003 - 14:14 #11
Prøv med:

java -classpath C:\etellerandetsted\etellerandetnavn.jar JdbcTest1
Avatar billede tigertool Nybegynder
23. december 2003 - 14:14 #12
Har installeret InterClient fra borland.com..

men hvor får jeg den jar fil og hvor skal den ligge?
Avatar billede arne_v Ekspert
23. december 2003 - 14:17 #13
Godt spørgsmål.

Prov og søg efter en fil der hedder .jar i det directory træ, hvor
InterClient er installeret.
Avatar billede tigertool Nybegynder
23. december 2003 - 14:17 #14
dette:
java -classpath C:\test.jar JdbcTest1

giver:
Exception in thread "main" java.lang.NoClassDefFoundError: JdbcTest1
Avatar billede arne_v Ekspert
23. december 2003 - 14:18 #15
Lidt søgning på Google siger at den hedder interclient.jar
(logisk nok !).
Avatar billede arne_v Ekspert
23. december 2003 - 14:18 #16
java -classpath .;C:\etellerandetsted\interclient.jar JdbcTest1
Avatar billede tigertool Nybegynder
23. december 2003 - 14:19 #17
Der ligger et par stykker:
interclient.jar
interclient-core.jar
interclient-res.jar
interclient-utils.jar
Avatar billede tigertool Nybegynder
23. december 2003 - 14:22 #18
giver denne fejl:

Exception in thread "main" java.lang.NoClassDefFoundError: Files\InterBase
Avatar billede arne_v Ekspert
23. december 2003 - 14:23 #19
I har mellemrum i directory navn !

java -classpath .;"C:\et eller andet sted\interclient.jar" JdbcTest1
Avatar billede tigertool Nybegynder
23. december 2003 - 14:26 #20
giver stadig samme fejl
Avatar billede tigertool Nybegynder
23. december 2003 - 14:29 #21
Bliver nød til at smutte nogle timer. (Så har jeg også lidt tid til at tænke over hvad det er jeg gør forkert)!
Avatar billede arne_v Ekspert
23. december 2003 - 14:42 #22
Prøv og tilføj de andre jar filer til classpath også (adskilt med semikolon)
Avatar billede tigertool Nybegynder
27. december 2003 - 16:27 #23
Jeg har nu fulgt mange vejledninger til opsætning af InterClient/InterServer og InterBase. Jeg tror nu at fejlen ligger i at JBuilder ikke tager den der InterClient driver med. Hvordan får jeg lige JBuilder til det? Den skal jo tage den interclient.jar med under run..
Avatar billede arne_v Ekspert
27. december 2003 - 16:31 #24
Project
Project Properties
Required Libraries
Add
New
navn + jar filer
Avatar billede tigertool Nybegynder
27. december 2003 - 16:40 #25
ja ja.. se nu begynder det at ligne noget.
Nu får jeg bare denne fejl:
--------------------------------
java.lang.VerifyError: (class: interbase/interclient/ErrorKey, method: _$372 signature: (Ljava/lang/String;Ljava/lang/String;I)V) Expecting to find unitialized object on stack
    at interbase.interclient.JDBCNet._$125484(JDBCNet.java:178)
    at interbase.interclient.JDBCNet._$125461(JDBCNet.java:132)
    at interbase.interclient.JDBCNet.<init>(JDBCNet.java:75)
    at interbase.interclient.Connection._$45044(Connection.java:317)
    at interbase.interclient.Connection.<init>(Connection.java:285)
    at interbase.interclient.Driver.connect(Driver.java:204)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at SQL.main(SQL.java:21)
Exception in thread "main"
-------------------------

hvad betyder det?
Avatar billede arne_v Ekspert
27. december 2003 - 16:43 #26
Suk.

Det er jo samme fejl som du startede med.

Jeg tænker.
Avatar billede tigertool Nybegynder
27. december 2003 - 16:44 #27
rolig nu.. jeg tror jeg har fundet fejlen...

Jeg havde brugt den forkerte interbase.jar fil..

Jeg får ingen fejl nu.,..

arne_v < smid lige et lille svar...
Avatar billede arne_v Ekspert
27. december 2003 - 16:46 #28
herligt
Avatar billede tigertool Nybegynder
27. december 2003 - 16:47 #29
takker endnu en gang...

Kan du evt skrive hvordan jeg henter lidt fra en table ??
Avatar billede arne_v Ekspert
27. december 2003 - 16:52 #30
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM tabelnavn);
while(rs.next()) {
  int ival = rs.getInt("intfelt");
  String sval = rs.getString("strfelt");
  // process data
}

skulle få dig igang !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester