Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать несколько екземпляров компонента, ---------------------------------------- 
:(
    Опции темы
X-Vlad
Дата 19.4.2004, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

Репутация: 1
Всего: 5



Привет всем.


Сервер. Ждёт конекта клиента. Клиент посылает команду. Сервер работает с базой даных Интербейс. Когда один клиент то нормально обрабатывается, а когда много ничего неработает. Я решил реализовать ето дело в потоках (TThread). Но незнаю как. (никогда с етим неработал) хочу научится. Можете мне подсказать?. Дома куча книг по Дельфи и ни в одной нет инфы о Потоках. sad.gif

Когда клиенты конектятся то для них создается отдельный поток (нашел пример). А вот как мне реализовать работу с базой в отдельных потоках?

делал так: (работает для одного клиента)
Код
Var
zname:string;
ZalQuery1:TIBQuery;
ZalDatabase1: TIBDatabase;
ZalTransaction1: TIBTransaction;
begin
try
 try
  ZalQuery1:=TIBQuery.Create(aowner);
  ZalDatabase1:=TIBDatabase.Create(aowner);
  ZalTransaction1:=TIBTransaction.Create(aowner);
  ZalDataBase1.DatabaseName:=dm2.DataBase1.DatabaseName;
  ZalDataBase1.Params.Text:=dm2.Database1.Params.Text;
  ZalDataBase1.LoginPrompt:=false;
  ZalDataBase1.DefaultTransaction:=ZalTransaction1;
  ZalQuery1.Database:=ZalDataBase1;
  ZalQuery1.Transaction:=ZalTransaction1;
  ZalDataBase1.Connected:=true;

    ZalQuery1.Active:=false;
    ZalQuery1.SQL.Clear;
    ZalQuery1.SQL.Add('select * from ZALFORZAMOVLENYA('+id+')');
    ZalQuery1.Active:=true;
    ZalQuery1.FetchAll;
....
 except
  on e:exception do
   begin
    result:=false;
    dm.Display('..Ошибка..... '+e.message,MYSERVER,I_ERRORMSG);
    exit;
   end;
 end;
finally
 ZalQuery1.Free;
 ZalDatabase1.Free;
 ZalTransaction1.Free;
 result:=true;
end;
end;


как мне реализовать ето дело, что-бы работало с несколькими клиентами?
Если можна кусочек кода... smile.gif

(Есть много магазинов - пишу програму для синхронизации остатков товара на складах. Сервер и клиент реализованы на Socket)


Зарание благодарен.

Это сообщение отредактировал(а) X-Vlad - 19.4.2004, 15:46


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Mr.Picwick
Дата 19.4.2004, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 23.3.2004

Репутация: нет
Всего: нет



Посмотри о потоках в
1) "Программирование в Delphi7" Дарахвелидзе,Марков BHV - мне понравилось
как здесь написано
2) "Программирование в Delphi7" Архангельский

PM MAIL   Вверх
X-Vlad
Дата 20.4.2004, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

Репутация: 1
Всего: 5



Может кто-то пример может кинуть?


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Georg4
Дата 20.4.2004, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 961
Регистрация: 2.11.2002

Репутация: 0
Всего: 10



Как и все честные люди, начнем с нуля.
У меня дома документация больше, это то что нашел сразу вроде бы все нормально написано
http://uchenik.vofka.ru/my_files/Thread.ZIP


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Akella
Дата 20.4.2004, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



а в FAQ не лазил?
PM MAIL   Вверх
X-Vlad
Дата 20.4.2004, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

Репутация: 1
Всего: 5



Как мне подождать пока выполнится поток?

Например вот такой код:

Код

procedure TMyThread.execute;
Var
i:integer;
begin
i:=0;
repeat
  i:=i+1;
 sleep(100);
until i>10000;
end;

procedure start;
begin
mythread:=MyThreadClass.Create(true);
mythread.FreeOnTerminate:=true;
mythread.suspended:=false;
end;

procedure click;
begin
start;
showmessage('end');
end;



что надо зделать что-бы сообщение показывалось после завершения работы потока?

Зарание благодарен.


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.