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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 18.06.2007, 15:14
Аватар для Сёна
Сёна Сёна вне форума
Прохожий
 
Регистрация: 02.05.2007
Адрес: Москва
Сообщения: 42
Версия Delphi: 7
Репутация: 10
По умолчанию

массив
Код:
mas_rol:array [1..5,1..n*4] of roliks;
(n = 104)
Код:
type
roliks = record
 ob:Tshape;      
 rol:string[10];  
 rol_p:string[10];  
 fsec:integer;  
 unrs:byte;     
 fnum:integer;   
 fname:tlabel;   
 line:byte;     
 sec:tpanel;     
 st:tlabel;     
 num:tlabel;     
 s_num:string[30];
 vid:byte;        
 end;
Ответить с цитированием
  #17  
Старый 18.06.2007, 15:38
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

1. (Выслала мне код по исправленному адресу?)
2. Массив.
а) Первый индекс влез в границы 1..5?
б) Второй индекс влез в границы 1..104*4?
3. rol. Длина этой строки не превышает 10? (определение поля 'ROL_PASP_NUM' в БД)

Ещё подозрение. К таблице bloc сразу два обращения. Сделай в две команды:
Код:
var s:string[10];
...
s:= ...;
mas[i, j].rol:= s;

Последний раз редактировалось AlexSku, 18.06.2007 в 15:48.
Ответить с цитированием
  #18  
Старый 19.06.2007, 05:42
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Сёна
Код:
form1.mas_rol[form1.pasp_sec.FieldByName('ROL_UNRS_NUM').AsInteger,
form1.index+form2.bloc.FieldByName('ROL_PASP_NVSEC').Asinteger-1].rol:=form2.bloc.fieldbyname('ROL_PASP_NUM').Asstring;
то что жирным виделено это что? нет такого свойства у объекта TForm.
Ответить с цитированием
  #19  
Старый 19.06.2007, 08:57
Аватар для Сёна
Сёна Сёна вне форума
Прохожий
 
Регистрация: 02.05.2007
Адрес: Москва
Сообщения: 42
Версия Delphi: 7
Репутация: 10
По умолчанию

то что выделено жирным типа integer и
Код:
index:=strtoint((Sender as tlabel).Hint);
Ответить с цитированием
  #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, время: 10:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter