Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Delphi] Baza danych, usuwanie rekordu

sorell 18 Paź 2010 19:35 1654 3
  • #1 18 Paź 2010 19:35
    sorell
    Poziom 8  

    Mam problem z usuwaniem rekordu z tabeli. Gdy chcę usunąć dany element to pokazuje mi taki błąd:


    Code:

    Project idnumma.exe raised exception class EAccessViolation with message 'Access violation at address 0045087F in module 'idnumma.exe'. Read of address 00958F0F'. Process stopped. Use Step or Run to continue.



    A to procedura do usuwania

    Code:

     var
      F : TAddressFile;
      Rec : TAddress;
      i : Integer;
    begin
      AssignFile(F, OpenDialog1.FileName);
      try
        Rewrite(F);  // utworzenie pliku i skasowanie poprzedniej zawartości

        for i := 0 to ListView1.Items.Count  do
        begin
        { jeżeli wykonywana iteracja nie ma numeru takiego samego, jak zaznaczony element }
          if i <> ListView1.Selected.Index then
          begin
          { dodaj zawartość kolejnego elementu do pliku }

            Rec.FName := ListView1.Items[i].Caption;
            Rec.SName := ListView1.Items[i].SubItems[0];
            Rec.tel := ListView1.Items[i].SubItems[1];

            Write(F, Rec);
          end;
        end;
      finally
        CloseFile(F);
        end;
    end;


    To co chcę usuwa normalnie tylko wywala mi ten błąd i musze od nowa uruchamiać program. Co tu jest nie tak ?? :P

    0 3
  • #2 19 Paź 2010 07:41
    dj_west
    Poziom 16  

    Błąd indeksowania. Iterujesz od 0 do Count (czyli liczby elementów listy). Przypuścmy, że masz ich 2. Więc zakres indeksów (poprawny) powinien być 0..1. Tymczasem u Ciebie będzie 0..2, co wywali błąd przy indeksie 2, bo element o takim indeksie nie istnieje.

    0
  • #3 19 Paź 2010 08:20
    Vinnic
    Poziom 15  

    Powinno być raczej
    for i := 0 to ListView1.Items.Count-1 do

    0
  • #4 19 Paź 2010 16:54
    sorell
    Poziom 8  

    Ok działa dzięki wielkie teraz muszę się pomęczyć nad wyszukiwarka, aby poprostu pokazała szukany element. Może wiecie mniej więcej jak to zrobić i możecie podpowiedzieć ? Sam element wyszukanie bo wyświetlanie to już mam.

    0