![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в выполнении параллельного потока [D2005, XP]
ГореПрограммер © (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 ..
горе-прграммер. одним словом)..