[ krstak84 @ 31.01.2009. 06:05 ] @
Imam problem sa povezivanjem iz java programa sa bazom podataka koja je pravljena u OpenOffice.org. Evo koda:

Code:

import java.sql.*;

public class Baza {

    Connection connection;
    Statement statement;
    ResultSet result;
    
    public static void main(String[] args){

        Baza bp = new Baza();
        bp.povezi();
    }

    void povezi(){
        try {
            Class.forName("org.hsqldb.jdbcDriver");
            connection = DriverManager.getConnection("jdbc:hsqldb:baza","sa","");
            statement = connection.createStatement();
//            result = statement.executeQuery("SELECT * FROM tab");
            System.out.println("uradjeno");
        } catch (SQLException e) {
            e.printStackTrace();
            return;
        } catch(Exception e){

        }
    }
}


kada ovako stoji, sve radi ok, ali kada skinem komentar sa 're = st.executeQuery("SELECT * FROM tab");' prijavljuje sledecu gresku :

Code:

run:
java.sql.SQLException: Table not found in statement [SELECT * FROM tab]
        at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
        at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.jdbcStatement.executeQuery(Unknown Source)
        at Baza.povezi(Baza.java:25)
        at Baza.main(Baza.java:17)


U bazi imam jednu tabelu koje se zove tab i dve kolone u toj tabeli. Da li mozda trebam tu bazu nekako da registrujem ili nesto drugo da uradim da bi uspeo da se povezem sa njom. Importovao sam u Libraries hsqldb.jar fajlu.

Kada sam otvorio bazu, isao sam na tools->options->database i tamo je registrovao, tj. dodao sam samo putanju, ali opet izbacuje ovu gresku.
Zanima me u cemu bi mogao da bude problem?

Unapred hvala.
[ Ivan Ivanic @ 31.01.2009. 06:48 ] @
hsqldb će ti vratiti konekciju čak i kad ne postoji fajl koji si naveo. Tako da to što ti izbaci exception tek kada probaš da uradiš query ne znači obavezno da je povezivanje na bazu bilo uspešno.
Probaj da se konektuješ punom specifikacijom putanje do fajla baze:
Code:
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:c:\putanja\do\fajla\baza", "sa", "");
[ krstak84 @ 31.01.2009. 07:09 ] @
Upravo sam sad to probao i nista.

Kad registrujem baza u Accessu moram da idem na Data Sources i tamo je registrujem, da li i ovde moram nesto jos dodatno da uradim ili je kod koji je napisan dovoljan za povezivanje sa bazom?
[ Ivan Ivanic @ 31.01.2009. 09:20 ] @
Ne znam. Stvarno nemam iskustva sa hsql. Ali primetio sam da mnogo ljudi na netu navodi taj problem i nisam našao neka korisna rešenja :(
[ Branko_S @ 02.02.2009. 09:01 ] @
Ja sam koristio njihov zvanični "User Guide", i koliko se sećam nisam imao nikakvih problema. Pokušaću da pronađem neke primere koje sam tada radio. Do tada pogledaj malo ovo: http://hsqldb.org/doc/guide/guide.pdf
[ krstak84 @ 02.02.2009. 10:21 ] @
Imam i ja taj guide, citao sam, ali nisam uspeo da povezem.

Napravio sam bazu u OpenOffice.org koja se zove baza.odb i nikako ne mogu da je povezem. Da li si ti registrovao tu bazu ili nesto dodatno podesio?, ja sam sve probao i nista nisam uradio.

Bio bih ti zahvalan ako bi nasao taj primer sto si pravio, ovo mi je stvarno potrebno.
[ grizzly @ 02.02.2009. 22:44 ] @
Ja sam pravio projekat gde je rdms bio hsqldb, naravno sve je radilo. Samo sto je baza bila u fajlu *.script znaci nije bila pravljena u OpenOffice-u... Tada nije bila potrebna nikakva registracija. Pokusaj u data sources pa javi sta je bilo bas me interesuje...
[ krstak84 @ 03.02.2009. 05:54 ] @
I ja sam uspeo sa hsqldb drajverom da napravim i povezem se sa bazom "baza.script", i sve radi super, ali meni treba da se povezem sa bazom "baza.odb" iz paketa OpenOffice.org, e to ne mogu da uradim.

Probao sam i u Data Source da je registrujem, ali ne znam kako, tamo samo prepoznaje one majkrosoftove drajvere, tako da nema hsqldb drajvera tamo, trazio sam i da ga ubacim ali nisam nasao kako.
[ Branko_S @ 03.02.2009. 06:53 ] @
I moj primer je bio sa *.script bazom, tako da ti taj primer (koji ne mogu ni da pronađem :-( ) neće pomoći.
[ Goran Rakić @ 16.02.2009. 05:59 ] @
Vidim isto pitanje na više foruma, ali ne znam gde pratiš pa da ti i ovde odgovorim. ODB datoteka (OpenOffice.org Base) je ZIP arhiva u kojoj ćeš naći fasciklu "database" sa datotekama ugrađene HSQLDB baze. Dakle, moraš da uradiš raspakivanje i tek onda da se povežeš.

Vodi računa da ODB datoteka može umesto ugrađene baze da koristi i tekstualne datoteke, LDAP ili JDBC da se poveže na neku drugu bazu, pa ako želiš univerzalno rešenje moraćeš da rasumačiš i content.xml (element db:connection-data) iz ODB-a i uspostaviš konekciju.

ODFDOM (http://odftoolkit.org/projects/odftoolkit/pages/ODFDOM) još uvek ne podržava rad sa ODB dokumentima, pa ćeš morati sam da implementiraš, iako je podrška u najavi.

Srećno i javi šta si uradio ;)

[Ovu poruku je menjao Goran Rakić dana 16.02.2009. u 07:09 GMT+1]