Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #20  
Старый 19.06.2007, 10:42
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
Ошибка выходит не всегда, заметила такую закономерность, чем больше данных по записи, которая берется тем больше вероятность получить ошибку.
Теперь мы пойдём другим путём. Есть подозрение, что транзакция, которая вносит изменения ( напр, form8.OracleDataSet1.FieldByName('ROL_PASP_SEC').A sInteger:=bl_id; ) имеет монопольный доступ к данным и пока не закончится, отвергает Refresh, которой придётся подождать. Если дело в миллисекундах, то я обычно пишу:
Код:
while <плохая ситуация> do
Application.ProcessMessages;
или
repeat Application.ProcessMessages
until <хорошая ситуация>;
Если время идёт на секунды, то запускаю таймер с интервалом, напр. 100 [мс]:
Код:
Timer1.Enabled:= true;
...
procedure Form1.Timer1Timer(Sender: TObject);
begin
  if <хорошая ситуация> then
  begin
    Timer1.Enabled:= false;
    form2.pasp_rol0.Refresh;
  end;
end;
Теперь хорошо бы получить сведения о ситуации. Может быть, провести исследования таким способом:
Код:
var State1: TDataSetState;
...
State1:= form2.pasp_rol0.State;
try
  form2.pasp_rol0.Refresh;
  ShowMessage(Format('норма: %u',[Ord(State1)]));
except
  ShowMessage(Format('ошибка: %u',[Ord(State1)]));
end;

Последний раз редактировалось AlexSku, 19.06.2007 в 10:48.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:31.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025