Показать сообщение отдельно
  #1  
Старый 18.02.2017, 17:25
Rimma Zlotnikov Rimma Zlotnikov вне форума
Прохожий
 
Регистрация: 18.02.2017
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
Злость Delphi 7 Access Violation

Всем доброго дня
Столкнулась с проблемой при добавлении записей посредством IBTable.
Запускаю проект, и первый раз эти строки выполняются отлично:
Код:
//запись в таблицу ITER
  i := 1;
  itcount := RandomRange(1, 100);
  for i := 1 to itcount-1 do
  BEGIN

        DM.IBTable3.Append;    //БЫЛА ОШИБКА "cannot focus a disabled or invisible window"
        DM.IBTable3.FieldByName('IT_ID').AsInteger := 0;   //ВОТ ЗДЕСЬ !!!!!!ACCESS VIOLATION и PRIVILEGED INSTRUCTION ... формируется в базе триггером, есть ID итерации
        DM.IBTable3.FieldByName('CALCNUM').AsInteger := CALCNUM;  //для какого расчета..
        DM.IBTable3.FieldByName('ITERNUM').AsInteger := 0;     //ФОРМИРУЕТСЯ СЕЙЧАС В БАЗЕ триггером. но возможно придется ставить здесь
        DM.IBTable3.FieldByName('X1K').AsFloat := i;   //координата X
        DM.IBTable3.FieldByName('X2K').AsFloat  := RandomRange(1, 50) ;     //координата Y
        DM.IBTable3.FieldByName('FK').AsFloat  := RandomRange(0, 50);
        DM.IBTable3.POST;
  END;
  //DM.IBTable3.Refresh;

НО при повторном срабатывании выдавало ошибку 'Access violation at address XXXXXXX (всегда разный). Read of address YYYYYYYY'

Теперь в этом же месте ошибка 'Privileged instruction' и также при повторной работе кода. Получается, что уже команда Append не проходит..

Интересно заметить, что этот код работал уже много раз и вполне успешно, но после изменений не знаю каких таких, все стало вот так.
Ответить с цитированием