|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.07.2010, 06:35 | #1 |
Пользователь
Регистрация: 04.05.2009
Сообщений: 17
|
Обращение к БД из потока
Добрый день! С базами данных работал не много, поэтому уперся в одну ситуацию:
Есть сервер (на TServerSocket), при подключении нового клиента - выделяется отдельный поток (одновременно работают около тысячи потоков). Раньше все клиенты обращались к одной базе данных (открытой на главной форме сервера) каждый из своего потока - это работает прекрасно, но на данный момент возникла необходимость вести отделюную БД для каждого из клиентов (БД на парадоксе, работаю с ней через TTable). Проблема состоит в том, что загромождать форму тысячей тэйблов - как минимум не логично, а обращение из разных потоков (каждый к своей БД) через один компонент будет создавать перекрестные запросы. Вопрос: как организовать работу с большим количеством баз данных (по одной на каждого подключенного клиента)? Буду благодарен за любую информацию. Заранее спасибо. |
27.07.2010, 08:56 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А ты в каждом потоке создавай свой компонент для работы с БД.
Я лично так и делаю. Например Код:
I'm learning to live...
Последний раз редактировалось Stilet; 27.07.2010 в 11:15. |
27.07.2010, 09:33 | #3 | |
Пользователь
Регистрация: 04.05.2009
Сообщений: 17
|
Цитата:
Но тут возникает другой вопрос: как быть со скоростью выполнения? Create ведь займет довольно много времени. (возможно я не прав, если что поправьте) Проблема в том, что пока сервер будет создавать компонент и работать с ним, клиент будет ожидать ответа, что замедлит работу - поэтому время очень важно. Вот если бы это: Код:
Последний раз редактировалось xStill; 27.07.2010 в 09:38. |
|
27.07.2010, 11:10 | #4 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
придумай веселую заставочку с викториной и ценными призами
тогда никто тормозов не заметит |
27.07.2010, 11:15 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Да, поскольку это в потоке, я свой пример поправлю чуть, выделив моменты, без которых может заругаться.
I'm learning to live...
|
|
27.07.2010, 12:55 | #6 | |
Пользователь
Регистрация: 04.05.2009
Сообщений: 17
|
Цитата:
Однако, попробую создать в потоке, может что и выйдет. Спасибо! Задумка конечно хорошая, однако в данном случае это не применимо. Это будет все равно что 3 секунды рекламы перед отправкой и получением каждого сообщения в ISQ. Последний раз редактировалось xStill; 27.07.2010 в 12:58. |
|
27.07.2010, 12:57 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Ты что-то путаешь, либо программы пускаешь на слабеньких машинах.
I'm learning to live...
|
|
27.07.2010, 13:00 | #8 |
Пользователь
Регистрация: 04.05.2009
Сообщений: 17
|
Странно, может быть у меня что-то не то с системой (хотя машина более чем сильная). Сейчас начну старые проекты просматривать, может ошибку найду
|
27.07.2010, 18:28 | #9 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
в каждой шутке есть доля шутки
прежде чем критиковать предложенное (см. пост Stilet-а) стоит его опробовать а тестировать лучше всего на самой слабой тачке тогда вылезут косяки, которые на быстрой тачке вряд ли появятся при тестировании (собсна из-за несовершенства самого тестирования) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Номер потока | KoBRaAndrey | Общие вопросы Delphi | 1 | 01.06.2010 02:27 |
Создание потока | GoldP | Win Api | 0 | 14.05.2010 21:28 |
Перезапуск потока | RNT | Общие вопросы C/C++ | 3 | 14.08.2009 14:54 |
Распараллеливание потока | eXa | Общие вопросы Delphi | 3 | 19.07.2007 20:11 |