[ franjo_tahi @ 26.09.2008. 13:38 ] @
Kako napraviti update vrijdnosti generatora pomoću SQL-a, odnosno, s vrijdenošću koju vraća SQL.
Radim update baze tako da dodajem PK gdje fale, generatore i sl. Radi način:
npr:
SET GENERATOR GEN_OPOMENA_ID TO 82003

ali meni treba nešto kao:

SET GENERATOR GEN_OPOMENA_ID TO (SELECT MAX(OPOMENA_ID) FROM OPOMENA)

ovo ne radi. Znači li to da moram ručno raditi update generatora?
[ darko_sudarov @ 26.09.2008. 15:05 ] @
Ako sam te dobro razumeo tebi treba nesto ovako

Code:

SET TERM ^ ;

CREATE OR ALTER PROCEDURE TEST 
as
declare variable br integer;
begin
select max(id) from slika into :br;
br = GEN_ID (gen_slika_id, br - GEN_ID (gen_slika_id,0) );

end^

SET TERM ; ^

GRANT SELECT ON SLIKA TO PROCEDURE TEST;

GRANT EXECUTE ON PROCEDURE TEST TO SYSDBA;


slika je tabela,gen_slika_id je njen generator,id primary key
[ franjo_tahi @ 28.09.2008. 15:27 ] @
Znam preko procedure, zanima me da li može bez proedure, direktno preko SQL-a
[ savkic @ 29.09.2008. 12:55 ] @
> Znam preko procedure, zanima me da li može bez proedure, direktno preko SQL-a

Može, SELECT GEN_ID(iskoristi prethodni kod) FROM RDB$DATABASE
[ franjo_tahi @ 29.09.2008. 19:16 ] @
Pa jasno :)

SELECT GEN_ID(Naziv_Generatora, MaxValue) FROM RDB$DATABASE

Kako se nekad čovjek ne sjeti jednostavnog rješenja...
[ darko_sudarov @ 23.12.2008. 18:22 ] @
>>Kako napraviti update vrijdnosti generatora pomoću SQL-a, odnosno, s vrijdenošću koju vraća SQL.
>>Radim update baze tako da dodajem PK gdje fale, generatore i sl. Radi način:


Ovo mi se ucinilo interesantnim : naime dali moze da se nadje koji je generator zaduzen za koju tabelu ?

Ja sam stigao do ovog dela, - nadjem tabele koje imaju PK

Code:

select  r.rdb$relation_name as tabela ,s.rdb$field_name as pk
FROM RDB$RELATION_CONSTRAINTS  r,RDB$INDEX_SEGMENTS s
WHERE r.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
and r.rdb$relation_name not starting with 'IBE$'
and s.rdb$index_name = r.rdb$index_name


sada bi trebao da nadjem sa kojim je generatorom to polje povezano. Dali je to u opste i moguce?
Cilj ovoga je da napravim proceduru koja ce protrcati po tabelama koje imaju PK i postaviti generatore na max vrednost koja se nalazi u bazi.
[ schild @ 24.12.2008. 09:19 ] @
Ne postoji veza GENERATOR = POLJE kao takva. Jedino ako ti sam napravis neku tabelu pa tamo rucno upises relaciju generator - tabela - polje.
[ darko_sudarov @ 24.12.2008. 10:15 ] @
>>Ne postoji veza GENERATOR = POLJE kao takva.
Steta zar ne .

I meni je bilo to logicno jer jedan gen moze da radi za vise tabela ali sam pomislio da mozda ima to negde upisano....

Inace ideja o tabeli je dobra,bolje ista nego nista, a to moze dosta da pomogne.