Koristim FB 2.0 (2.1 release) i D2007.
Želeo bi malo bolje da naučim pisanje procedura u FB (imam iskustva sa procedurama pod drugim server okruženjem).
Hteo bih da započnem jedan jednostavan primer i da ga uz pomoć foruma uradim (napišemo proceduru).
Ideja (problematika) je sledeća:
Postoje tabele u sledećoj formi:
TABELA
ID Integer
NAZIV Varchar(20)
MIN Integer
MAX Integer
PN Varchar(2)
BROJ1 Varchar(3)
BROJ2 Varchar(3)
TABELA_ST
ID Integer
NAZIV Varchar(20)
MINMAX Varchar(3)
BROJ1 Varchar(3)
BROJ2 Varchar(3)
Želeo bih da napišem proceduru koja će se izvršavati pri svakom insertu u tabelu TABELA na sledeći način:
TABELA_ST.ID je Autoincreament polje koje služi kao primary
TABELA_ST.NAZIV = TABELA.NAZIV
TABELA_ST.BROJ1 = TABELA.BROJ1
TABELA_ST.BROJ2 = TABELA.BROJ2
i sada ono što je ključno, a to je kako se dobija polje TABELA_ST.MINMAX
Potrebno je da prilikom inserta u tabelu TABELA procedura uzima parametre MIN, MAX i PN, gde je MIN minimalni broj, MAX maksimalni broj a PN može da ima vrednosti P,N ili S
Kada se uradi insert u tabelu TABELA, procedura radi n upisa u TABELA_ST po principu
TABELA_ST.ID je Autoincreament polje koje služi kao primary
TABELA_ST.NAZIV = TABELA.NAZIV
TABELA_ST.BROJ1 = TABELA.BROJ1
TABELA_ST.BROJ2 = TABELA.BROJ2
MINMAX se određuje na sledeći način
Uzima se TABELA.MIN i TABELA.MAX i to je raspon (npr. MIN=1 MAX=10)
Uzima se TABELA.PN, koje može imati vrednosti P (parni), N(neparni), S(svi)
Ako je MIN=1, MAX=10 i PN=S onda se uradi 10 upisa u tabelu TABELA_ST gde se ID normalno povećava za 1, NAZIV se upisuje iz tabele TABELA.NAZIV za taj upis (isto važi i za polja BROJ1 i BROJ2), a MINMAX ide za svaki upis od 1 do 10.
Ako je npr. vrednost TABELA.PN=P onda će se po istom principu upisivati podaci u tabelu TABELA_ST, samo što će se gledati parni brojevi u nizu od 1 do 10, pa će biti 5 upisa (2,4,6,8,10)
Ako je npr. vrednost TABELA.PN=N onda će se po istom principu upisivati podaci u tabelu TABELA_ST, samo što će se gledati neparni brojevi u nizu od 1 do 10, pa će biti 5 upisa (1,3,5,7,9)
Nadam se da sam bio jasan i ne suvise konfuzan.
Unapred se zahvaljujem na pomoci.