![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли запихнуть выполнени SQL-запроса в отдельный поток? [D5, IB6.x]
AlexWeb © (2003-09-01 13:08:00)
Как это отразится на работе программы в целом?
Я использую IBX компоненты.
Рамиль (2003-09-02 15:16:00) [1]
Даже если нет, все равно многопоточный доступ к БД:-D
Zacho (2003-09-02 13:34:00) [2]
> Рамиль © (02.09.03 13:24) [14]
> Ну значит делает сессии автоматически.
Да нет там вообще никаких сессий :)
Рамиль (2003-09-02 13:24:00) [3]
> Это для BDE, а у автора вопроса - IBX.
Ну значит делает сессии автоматически.
> Почему ?
Это не будет выолняться в рамках гдавного потока VCL
Zacho (2003-09-02 12:36:00) [4]
> Рамиль © (02.09.03 11:48) [12]
> 1. Скинуть на форму TSession.
> 3. Ну и собственно новый коннект и настроить его на соотв.
> сессию.
Это для BDE, а у автора вопроса - IBX.
> 2. DataSet не должен быть связан с DataSource;
Почему ?
Рамиль (2003-09-02 11:48:00) [5]
А собственно что бы запустить в отдельном потоке надо сделать следующее:
1. Скинуть на форму TSession.
2. DataSet не должен быть связан с DataSource;
3. Ну и собственно новый коннект и настроить его на соотв. сессию.
Digitman (2003-09-02 08:24:00) [6]
> VID
и далеко не "свежее", кстати ... давно известное и не редко используемое многими
VID (2003-09-01 19:25:00) [7]
To Digitman: хорошее народное решение, здорово ! :)
Digitman (2003-09-01 15:39:00) [8]
можно.
еслит запрос выполняется в контексте SP и в WHERE-условии проверяет состояние некоего генератора
изменить же состояние генератора можно в отдельном код.потоке на стороне клиента
AlexWeb (2003-09-01 15:34:00) [9]
> Digitman © (01.09.03 15:23) [7]
А отменить выполнение запроса на сервере можно или нет?
Digitman (2003-09-01 15:23:00) [10]
> AlexWeb
> Что будет если .. замочить
хреново будет
сервер об этом ничего не знает
AlexWeb (2003-09-01 15:18:00) [11]
Что будет если при выполнении запроса замочить поток?
MsGuns (2003-09-01 13:58:00) [12]
>Zacho © (01.09.03 13:52) [4]
Еще не проснулся (вчера трошечки того... до 6 утра);(((
Для параллирования работы сервера недостаточно две транзакции - надо два коннекта.
Zacho (2003-09-01 13:52:00) [13]
> MsGuns © (01.09.03 13:37) [2]
Если это надо для "параллельного" выполнения нескольких запросов - то не поможет, запросы в контексте одного коннекта выполняются последовательно, независимо от того, в одной они транзакции или в разных.
> АлексейК (01.09.03 13:42) [3]
А что это такое ? Тем более в IBX ?
АлексейК (2003-09-01 13:42:00) [14]
Делай ассинхронный запрос.
MsGuns (2003-09-01 13:37:00) [15]
Разделяй обработку транзакциями
Zacho (2003-09-01 13:24:00) [16]
Насколько знаю, IBX потоконебезопасны, т.ч. для нормальной работы в каждом потоке должен быть свой коннект к БД. К тому же запросы, выполняемые из разных потоков, но в контексте одного коннекта все равно выполняются последовательно.