Java+Firebird brak błędów a program nie działa

Odpowiedz Nowy wątek
2011-08-20 13:22
0

Witam,
dostałem za zadanie napisać prostą bazę z wykorzystaniem firebirda (dodam, że nigdy z firebirda nie korzystałem). Ściągnąłem sterownik i napisałem program testowy żeby sprawdzić czy działa. Na początku wywalało kilka błędów, aż w końcu doszedłem do takiego kodu i teraz jest tak, że ani nie wywala błędów ani nie wyświetla informacji z bazy. Proszę o wskazówki i porady. Oto kod:

 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.firebirdsql.jdbc.*;
 
public class test {
 
    public static void main(String[] args) {
 
        Connection polaczenie = null;
        ResultSet result =null;
        Statement statement =null;
 
        String zapytanie = "SELECT *FROM PROBA";
 
        try{
            Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
            polaczenie = DriverManager.getConnection("jdbc:firebirdsql://localhost:3050/F:/TEST.fdb", "sysdba", "masterkey");
            statement = polaczenie.createStatement();
 
            result = statement.executeQuery(zapytanie);
            while(result.next()){
                String id = result.getString("ID");
                String imie = result.getString("IMIE");
                String nazwisko = result.getString("NAZWISKO");
                System.out.println(id+" "+imie+" "+nazwisko);
            }
        }catch(Exception e){
            System.out.println("Cos jest nie tak");
        }
 
    }
 
}
 

Pozostało 580 znaków

2011-08-20 14:14
0

Podstawowe pytanie: czy w tabeli Proba znajdują się jakiekolwiek dane?

Pozostało 580 znaków

2011-08-20 14:19
0

Tak znajdują się dwa rekordy.

Sprawdz, czy w ogole wchodzi do while'a. - [losowa nazwa] 2011-08-20 14:37
poza tym moze trzeba zapytanie zakonczyc srednikiem ? - [losowa nazwa] 2011-08-20 14:37

Pozostało 580 znaków

2011-08-20 15:00
0

Ehh do pętli nie wchodzi :-(

Pozostało 580 znaków

2011-08-20 15:35
0

Dostajesz chociaż jeden rekord w wyniku wykonania tego zapytania? rs.next() ma wartość false, czy true?

Pozostało 580 znaków

2011-08-20 15:50
0

No właśnie nie dostaję nic. result.next() ma wartość false.
Teraz próbowałem zrobić podobnie jak w innym programie który pisałem pod mysql-a i dalej to samo(czyli nic się nie dzieje):

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import javax.swing.JScrollPane;
import javax.swing.JTable;
import org.firebirdsql.jdbc.*;
 
public class test {
 
    public static void main(String[] args) {
        Connection polaczenie = null;
        String sterownik = "org.firebirdsql.jdbc.FBDriver";
 
        try {
            Class.forName(sterownik).newInstance();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
            try {
                polaczenie = DriverManager.getConnection("jdbc:firebirdsql://localhost:3050/F:/TEST.fdb", "sysdba", "masterkey");
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
 
            try {
                Statement statement = polaczenie.createStatement();
                ResultSet result=statement.executeQuery("SELECT *FROM PROBA");
                System.out.println(result.next());
                 while(result.next()){
                     String id = result.getString("ID");
                     String imie = result.getString("IMIE");
                     String nazwisko = result.getString("NAZWISKO");
                     System.out.println(id+" "+imie+" "+nazwisko);
             }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 
    }
}
 
edytowany 1x, ostatnio: Taruun, 2011-08-20 15:51

Pozostało 580 znaków

2011-08-20 15:56
0

Spróbuj może tym programem wstawić jakieś dane do bazy. Potem spróbuj je odczytać.

Pozostało 580 znaków

2011-08-20 16:59
0

SELECT FROM PROBA
To zapytanie jest niepoprawne, nie wiem czy tak samo masz w swoim programie czy tylko na tym listingu
SELECT
FROM PROBA - zabrakło spacji

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0