JAVA + FireBird

0

Witam Wszytskich,

mam następujący problem, jak wykonuje zapytanie do bazy. Zapytanie typu:

        connect = DriverManager.getConnection("jdbc:firebirdsql:localhost:C:/DB1.FDB", "user","pass");
        Statement stm = connect.createStatement();
        ResultSet rs = stm.executeQuery("SELECT * FROM STUDENT_TABLE");
        while(rs.next()) {
            String s = rs.getString("STUDENT_NAZWISKO");
            System.out.println(i + ". " + s);
        }

lata bezproblemowo, ale jak juz się próbuje wywołać procedure to juz nie trybi. Np:

        connect = DriverManager.getConnection("jdbc:firebirdsql:localhost:C:/DB1.FDB", "user","pass");
        Statement stm = connect.createStatement();
        ResultSet rs = stm.executeQuery("EXECUTE PROCEDURE KIERUNEK_DODAJ('nowy_k')");

generowany jest następujący błąd: Query did not return a result set.

Prosze o sugestię.

0

executeUpdate();

pozdrawiam

0

Ok. To jak jest procedura, która niec nie zwraca to ejst luz. Ale jak mamy procedure typu:

CREATE PROCEDURE STUDENT_LIST_PROCEDURE
returns ( nazwa varchar(20), klucz integer)
as
begin
for
select kierunek_id, kierunek_nazwa
from kierunek_table
order by kierunek_nazwa
into :klucz, :nazwa
do suspend;
end

przy takiej postaci system bazy danych czeka na odbiór rekordu. Jka to zaimplementować w JAVIE?

0

getResultSet()? a executeQuery() nie dziala?

pozdrawiam

0

Witam,

Chciałbym wrócić do tematu, mam dokładnie ten sam problem z tą różnicą, że z Java i MSSQL 2005.
Jeśli tworzę procedurę składowaną, której wynikiem jest jeden lub więcej rekordów to nie ma problemu, w javie wywołuje procedurę i ResultSet-em wszytko pobieram, pytanie jest jak poprać wynik procedury, jeśli jest to jakaś zmienna zadeklarowana w samej procedurze, całkiem możliwe, że mam błędnie napisaną procedurę, dlatego podam jej kod:

USE [dbtlow_test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[MyFirst] 
    @id_dok int = 0

AS

DECLARE @znacznik Integer

SET @znacznik = 0 

BEGIN

    SELECT @znacznik = count(*) 
        from SprDokTable
        where id_sprdok = @id_dok

    if @znacznik > 0 
        begin
            Select @znacznik = 8
        end 
    else 
        begin
            Select @znacznik = 9
        end 

END
go

chciałbym w programie wyświetlić zmienna @znacznik

Pozdrawiam

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