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