Problemy z usuwaniem rekordów

0

Napisałem w zdarzeniu zmiany ComboBox3 następującą procedurę, która ma za zadanie dopasowanie ilości rekordów do założonej w ComboBox3, które następnie mają być uzupełniane. Gdy zwiększam liczbę wierszy (rekordów) wszystko jest OK, ale gdy tylko liczba rekordów się zmniejsza to wywala błąd
"Table1: Dataset not in edit or insert mode."

procedure TForm3.ComboBox3Change(Sender: TObject);
var i,j,k :Integer;
begin
  i:=0;
  Table1.First;
  while not Table1.Eof do
    begin
      Inc(i);
      Table1.Next
    end;
  edit2.Text:=inttostr(i);
  j:=StrToInt(ComboBox3.Text);
  if j>i then
    begin
      Table1.Last;
      for k:=1 to j-i do
        begin
          Table1.Insert;
          Table1.Post
        end;
    end;
  if j<i then
    begin
      for k:=j to i do
        begin
          Table1.Last;
          Table1.Edit;
          Table1.Delete;
          Table1.Post
        end;
    end;
end;

Nie wiem skąd taki problem, skoro za każdym razem ustawiam tabelę w tryb edycji. Proszę o jakieś konstruktywne sugestie.


lepiej stracić minutę w życiu, niż życie w minutę
</delphi></i>

0

albo edit albo delete

0

Usunąłem komendę Edit pozostawiając tylko


  if j<i then
    begin
      for k:=j to i do
        begin
          Table1.Last;
          Table1.Delete;
          Table1.Post
        end;
    end;

jednak błąd wywala nadal, ciągle ten sam. Macie jakieś inne sugestie do zaproponowania, przetestuję wszystkie.</delphi></i>

0

zapomniałem - Post zapisuje zmiany po Edit lub Insert, po Delete nie musisz (właściwie nie możesz) robić post a jedynie Commit (ale Commit powinno się robić niezależnie czy to było Edit, Insert czy Delete)

0

Dzięki za pomoc Misiekd, teraz pozostało mi jeszcze rozwiązanie problemu pakowania tabeli, ale postaram się wykorzystać kody, które są pod linkami zamieszczonymi przez Ciebie. Jeszcze raz dzięki.

0

tamte na pewno działają - w końcu borland nie publikował by niedziałających kodów :P

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