C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Процедура FireBird, Delay внутри процедуры
Nick
Отправлено: 02.07.2003, 07:51


Машинист паровоза

Группа: Участник
Сообщений: 247



Есть ли возможность сделать паузу внутри процедуры?

Процедура создания автоматической заявки выполняется в течении
1-4 минут.
В это время другие клиенты IBServer (FireBird 2.0.908)
культурно отдыхают...
Можно ли сделать так чтоб процедура останавливалать и давала другим поработать некоторое время. Скорость выполнения конечно уменьшится, но мы привыкли — Access выполняет эту задачу 40 минут.


Admin
Отправлено: 03.07.2003, 21:47


Владимир

Группа: Администратор
Сообщений: 1190



А почему это вдруг в многопользовательской базе данных
(клиент-серверной) остальные работающие отдыхают ?

Что-то неправильно в логике процедуры, или
очень слабый сервер на котром стоит база данных,
или низкая скорость работы по сети (10 а не 100) ??? wink.gif

А можно сделать или нет — Вам виднее что процедура делает -
код же ее Вы не привели.

Если процедура длинная, разбейте ее по логике на несколько
отдельных процедур, и вызывайте их из программы по очереди,
если нужно, сделав между вызовами задержку.

Кроме того, если все это выполняется в контексте одной большой
транзакции (например идет запрос — обновление очень большого
количества записей), например 10000, то разбейте это на 2
транзакции по 5000 записей.
Nick
Отправлено: 04.07.2003, 14:51


Машинист паровоза

Группа: Участник
Сообщений: 247



Спасибо я уже все переделал переделал

Вернуться в Работа с базами данных в C++Builder