Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];

Вниз

Создание объектов в потоках TSocketServer   Найти похожие ветки 

 
victorgugo   (2010-02-22 01:53) [0]

Здравствуйте!
Задача следующая: есть блокирующий TSocketServer. Соответственно при получении потока (GetThread) нужно для каждого этого потока создавать объекты доступа к БД, а при отключении - разрушать их. В главном модуле:
procedure TForm1.ServerSocket1GetThread(Sender: TObject;
 ClientSocket: TServerClientWinSocket; var SocketThread: TServerClientThread);
begin
SocketThread:=TServerThread.Create(True, ClientSocket);
SocketThread.Priority:=tpLower;
SocketThread.Resume;
end;

TServerThread - клас описанный в отдельном модуле, унаследованный от TServerClientThread.
В процедуре ClientExecute класа TServerThread создаём компоненты доступа:
IBTransaction1.Create(Application);
IBDataBase1.Create(Application);
IBQuery1.Create(Application);


При компиляции ошибок не выдаёт, но как только подключается клиент:
First chance exception at $7C812AFB. Exception class EAccessViolation with message "Access violation at address 004A1B52 in module "Project1.exe". Read of address 00000EA8". Process Project1.exe (1032)

Вместо Application в IBTransaction1.Create(Application); пробовал и Form1 и другие компоненты, все время такая ошибка.

Вопрос: как безболезнено создать объекты для потока сервера TServerSocket?

Заранее спасибо


 
victorgugo   (2010-02-22 02:22) [1]


> IBTransaction1.Create(Application);IBDataBase1.Create(Application);
> IBQuery1.Create(Application);


Вот что бывает, когда долго не пишешь на Делфи. Я уже и забыл как объекты создавать:
IBTransaction1 := TIBTransaction.Create(Application);
IBDataBase1 := TIBDataBase.Create(Application);
IBQuery1 := TIBQuery.Create(Application);

Всё работает))))


 
Сергей М. ©   (2010-02-23 22:09) [2]

> Всё работает

До поры до времени.
Грабли совсем близко.


 
victorgugo   (2010-02-24 00:17) [3]


> До поры до времени.Грабли совсем близко.

Может покажете где приблизительно эти грабли?


 
Сергей М. ©   (2010-02-24 08:24) [4]

В доп.потокее обращения к визуальным VCL-объектам недопустимы.
Таким объектом в дан.случае является объект Application.


 
Slym ©   (2010-02-24 11:00) [5]

victorgugo   (22.02.10 2:22) [1]
+1 [4]
передавай nil Create(nil) если не знаешь зачем оно туда передается...



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
15-1356035402
Юрий
2012-12-21 00:30
2013.04.14
С днем рождения ! 21 декабря 2012 пятница


2-1349379021
qwerty123
2012-10-04 23:30
2013.04.14
TreeView и системные иконки


15-1355839583
dummy_user
2012-12-18 18:06
2013.04.14
TClassList. Получить класс по названию.


2-1349695018
aka
2012-10-08 15:16
2013.04.14
SSH cryptlib, кто работал с этим?


2-1349481129
Вова
2012-10-06 03:52
2013.04.14
как получить handle запускамемого приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский