Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка в выполнении параллельного потока [D2005, XP]


Страницы:   1 2 3 4 5 6

ГореПрограммер ©   (2006-11-07 12:51:00) 

Здравствуйте.
есть клас:
 Tloadfon = class(TThread)
 protected
   procedure sinform;
   procedure Execute; override;
 end;

procedure tloadfon.sinform;
begin
fstart.prog1.StepIt;
end;
procedure tloadfon.Execute;
var i:integer;
begin
FreeOnTerminate := True;
for i := 0 to ar_excel.count - 1 do
 begin
   if Terminated then
     Break;
   loadip(ar_excel.zaps[i].mac,i);
   getminup(ar_excel.zaps[i].id);
   Synchronize(sinform);
 end;
end;

В момент обращения к нему, т.е.
tloadfon.create(false);

выдается ошибка базы данных:
dbExpress Error: Unknown Error Code '256'
[0x0005]: Operation Not Supported
Database Server Error: Failed to query the server.(Error "2013"; Reason "Lost connection to MySQL server during query")

если выполнять функции loadip и getminup  не в этом потоке, а просто в программе, то никаких ошибок не происходит. Подскажите пожалуйста где искать ошибку ?


ГореПрограммер   (2006-11-08 11:03:00) [41]

ar_excel это массив данных типа record
Данные загружаются при запуске программы после запуска мне необходимо для уже загруженных данных подгрузить несколько полей из базы данных.


Сергей М.   (2006-11-08 11:01:00) [42]


> ГореПрограммер   (08.11.06 10:13) [62]


Тогда рассказывай, с какой луны у тебя свалился ar_excel ..


Anatoly Podgoretsky   (2006-11-08 10:58:00) [43]

> DbExpress
А он случайно не использует асинхронные запросы


DVM   (2006-11-08 10:31:00) [44]


> а поток должен быть обязательно вынесен в отдельный модуль
> или это не влияет ?

Не влияет, но когда в одном модуле область видимости другая несколько. Дружественные классы так сказать образуются.


ГореПрограммер   (2006-11-08 10:23:00) [45]


> И случайно не АДО ли ты используешь?

DbExpress


Anatoly Podgoretsky   (2006-11-08 10:19:00) [46]


> Смысл в том, чтобы после запуска программы в фоне из базы
> загружались дополнительные данные, не мешая при этом работе
> программы.

Смысл хороший, а реализация.
И случайно не АДО ли ты используешь?


ГореПрограммер   (2006-11-08 10:16:00) [47]

Еще вопрос: а поток должен быть обязательно вынесен в отдельный модуль или это не влияет ?


ГореПрограммер   (2006-11-08 10:13:00) [48]


> Ну так ты оттрассировал пошагово проблемный код ?

В том- то и дело, что да. Ни в одной из тех двух процедур зацикленности не получается. Проверял даже проще: без потока исполнял цикл с этими процедурами, выполнился он корректно.


Сергей М.   (2006-11-08 09:57:00) [49]


> ГореПрограммер   (08.11.06 09:33) [60]


> Умничать ? да нет, вроде даже не пытался


Знач мне показалось) ... Я-то, дурак, думал, что конкретное значение твоих данных типа integer могут быть равными попугаям, авоськам, да всему чему угодно ... А тут вон оно как дело-то певернулось - "числу", оказывается ..)

Мда ..

Ну так ты оттрассировал пошагово проблемный код ?


ГореПрограммер   (2006-11-08 09:33:00) [50]

Смысл в том, чтобы после запуска программы в фоне из базы загружались дополнительные данные, не мешая при этом работе программы.


MetalFan   (2006-11-07 18:39:00) [51]

>[58]
я тож так сказал в [7] ;)


ANB   (2006-11-07 18:28:00) [52]

Таки глупый вопрос - а нафига тут вообще поток ? Чтобы был ?


MetalFan   (2006-11-07 17:41:00) [53]


> Сергей М. ©   (07.11.06 16:57) [50]
>
> сейчас выяснится, что автор слыхом не слыхивал ни  про потоконебезопасность
>  объектов доступа к СУБД, ни про Co[Un]Initialize ..
>
> горе-прграммер. одним словом)..


это и так уже понятно


ГореПрограммер   (2006-11-07 17:13:00) [54]


> Ну-ну.
> ПРодолжай умничать.
>
> Проблема-то - у тебя, а не у нас.

Умничать ? да нет, вроде даже не пытался

> ГореПрограммер   (07.11.06 16:54) [49]
>
>
> >
> > Ты убрал? Проблема исчезла или нет?
>
> да, сейчас пытаюсь понять каким образом SQL запрос может
> такое вызвать такие последствия...


Сергей М.   (2006-11-07 17:09:00) [55]


> ГореПрограммер   (07.11.06 17:04) [54]


Ну-ну.
ПРодолжай умничать.

Проблема-то - у тебя, а не у нас.


ГореПрограммер   (2006-11-07 17:04:00) [56]


> Да неужели ?!) ... Вот это новость ))

каков вопрос, таков ответ )


Сергей М.   (2006-11-07 17:03:00) [57]


> ГореПрограммер   (07.11.06 17:01) [52]



> числу


Да неужели ?!) ... Вот это новость ))


ГореПрограммер   (2006-11-07 17:01:00) [58]


> Прикольный "поток"... Чему равно ar_excel.count?

числу


Percent   (2006-11-07 16:58:00) [59]

for i := 0 to ar_excel.count - 1 do
begin
 if Terminated then
   Break;
 index:=i;
 Synchronize(sinform);
end;


Прикольный "поток"... Чему равно ar_excel.count?


Сергей М.   (2006-11-07 16:57:00) [60]

сейчас выяснится, что автор слыхом не слыхивал ни  про потоконебезопасность  объектов доступа к СУБД, ни про Co[Un]Initialize ..

горе-прграммер. одним словом)..


Страницы:   1 2 3 4 5 6

Наверх

Титульная страница Поиск, карта сайта Написать письмо