Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 2.551 pregleda

Najnovija ↓

Interbase i SQL i sequence 13.01.2010. u 01:47 · pre 204 meseca #1
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.
Re: Interbase i SQL i sequence 13.01.2010. u 07:27 · pre 204 meseca #2
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;
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme