Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Interbase i SQL i sequence

[es] :: Pascal / Delphi / Kylix :: Interbase i SQL i sequence

[ Pregleda: 1896 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

prginfo
NS

Član broj: 174814
Poruke: 133
*.adsl.neobee.net.



+1 Profil

icon Interbase i SQL i sequence13.01.2010. u 00:47 - pre 173 meseci
Koristim D2007 i IB.

Hteo bih da napravim odredjeni izvestaj pomocu SQL-a.

Ono sto me zanima, a sto mi normalno radi sa informix bazom je sledece:

Kako, i da li je moguce da pustam nesto tipa

create sequence t start with 1 increament by 1;

select t.nextval rbr, polje1, polje2, polje3 from tabela;

Naravno, u D2007 okuzenju, i ako moze, da li mogu da koristim standardne komponente tipa TIBQuery?
Pitanje je vezano za deo create sequence i select t.nextval, naravno :)

Hvala.
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.dynamic.sbb.rs.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: Interbase i SQL i sequence13.01.2010. u 06:27 - pre 173 meseci
Ako vrednosti za "sequence t" treba da ti budu sačuvane u bazi, procedura je sledeća - kreiraš sequence (generator) i trigger za tabelu:
Code:
CREATE SEQUENCE GEN_TABELA_ID;

CREATE TRIGGER TABELA_BI FOR TABELA
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.T IS NULL) THEN
    NEW.T = GEN_ID(GEN_TABELA_ID,1);
END;


Kad imaš ovo gore, možeš koristiti TIBQuery za dobijanje vrednosti generatora (recimo za insert novog recorda u bazu):
Code:
SELECT GEN_ID(GEN_TABELA_ID, 1) FROM RDB$DATABASE


Ukoliko ti sequence treba samo zbog izveštaja i ne mora da se sačuva u bazi, mnogo je jednostavnije koristiti ClientDataSet i kreirati Calculated polje "RBr", kome ćeš vrednosti dodeljivati npr. ovako:
Code:

procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
  ClientDataSet1RBr.Value := ClientDataSet1.RecNo;
end;
 
Odgovor na temu

prginfo
NS

Član broj: 174814
Poruke: 133
*.dynamic.sbb.rs.



+1 Profil

icon Re: Interbase i SQL i sequence13.01.2010. u 09:46 - pre 173 meseci
Radi, to je to. Hvala.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Interbase i SQL i sequence

[ Pregleda: 1896 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.