• 7 odgovora
  • 5.017 pregleda
Update generator-a 26.09.2008. u 13:38 · pre 220 meseci #1
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?
Re: Update generator-a 26.09.2008. u 15:05 · pre 220 meseci #2
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
Re: Update generator-a 28.09.2008. u 15:27 · pre 219 meseci #3
Znam preko procedure, zanima me da li može bez proedure, direktno preko SQL-a
Re: Update generator-a 29.09.2008. u 12:55 · pre 219 meseci #4
> 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
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Update generator-a 29.09.2008. u 19:16 · pre 219 meseci #5
Pa jasno :)

SELECT GEN_ID(Naziv_Generatora, MaxValue) FROM RDB$DATABASE

Kako se nekad čovjek ne sjeti jednostavnog rješenja...
Re: Update generator-a 23.12.2008. u 18:22 · pre 217 meseci #6
>>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.
Re: Update generator-a 24.12.2008. u 09:19 · pre 217 meseci #7
Ne postoji veza GENERATOR = POLJE kao takva. Jedino ako ti sam napravis neku tabelu pa tamo rucno upises relaciju generator - tabela - polje.
Re: Update generator-a 24.12.2008. u 10:15 · pre 217 meseci #8
>>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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme