Reset wyzwalacza

0

Witam

Stworzyłem bazę w IBExpert wraz z generatorem, procedura i wyzwalaczem dla kolumny "ID_KUR" i wszystko fajnie śmiga w programie. Jednak gdy usunę wszystkie rekordy i zatwierdzę transakcję, wartość ID_KUR przypisuje się jako następna zamiast od 1. Czyli jak miałem 30 rekordów, usunłęm je, to jako pierwszy rekord ma wartość ID_KUR=31.

Czy można programowo zresetować to jakoś? Czy koniecznie muszę tworzyć wszystko czyli generator, wyzwalacz i procedurę?
[soczek]

0

Dobra doszedłem do tego...chyba. :)

Jest takie zaklęcie czarodziejskie jak "Before Insert" i "After Delete", itd.. :)

0

Dla zainteresowanych rozwiązanie - procedurka z usuwaniem wszystkich rekordów i resetowaniem generatora z naszym ID do wartości = 0.

procedure TForm1.Button1Click(Sender: TObject);
begin
//usuń wszystkie rekordy z bazy
   with ibquery1, sql do
    begin
     Close;
     Clear;
     Add('DELETE FROM OSOBY');
     ExecSQL;
     IBTransaction1.Commit;

//resetuj generator do ID = 0, pierwszy rekord w bazie będzie miał ID = 1
       Close;
      Clear;
     Add('SET GENERATOR GEN_OSOBY_ID TO 0');
     ExecSQL;
    end;
  end;

Oczywiście wcześniej trzeba utworzyć generator i wyzwalacz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1