Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Проблема с генератором   Найти похожие ветки 

 
Fidel   (2005-10-04 17:42) [0]

У меня возникла следующая проблема c генераторами.
Обрисовываю ситуацию:
В приложении имеются два ДатаМодуля DM1, DM2. В первом подключаемся к одной базе данных FIBDatabase1, во втором к другой базе данных FIBDatabase2 (использую компоненты FIBPlus 5.2).
В первом ДатаМодуле есть компонент FIBQuery с запросом из одной таблицы первой базы данных (выбираются скажем все поля).
Привожу немного сокращенный код:

1. DM1.FIBQuery.ExecQuery;
2. while not  DM1.FIBQuery.Eof do
3.  begin
4.   DM2.FIBDatabase1.Gen_ID("GENERATOR1",1);
5.   DM1.FIBQuery.Next;
6.  end;

Так вот проблема в том, что вызов генератора в строке 4 подвисает, число генерируется, но проходит секунд 30, причем при новом запуске цикла на разных шагах цикла, т.е не на одном и том же месте, а всегда по разному. За весь цикл таких зависаний может быть несколько. В чем проблема не пойму?
Фишка в том, что если использовать цикл по какой нибудь циклической переменной, не перебирая записи DM1.FIBQuery, все работает. В холостую (без 4 строки) цикл тоже работает. Вот так вот. Че за хрень не пойму. Сколько работал с методом Gen_Id таких ситуаций не было.


 
Desdechado ©   (2005-10-04 17:52) [1]

а что делает означенная конструкция?


 
Johnmen ©   (2005-10-04 17:52) [2]

Что за хрень - не знаю, но количество записей, которые мог бы возвратить запрос, пока ты по его набору данных бегаешь, МОЖЕТ ИЗМЕНИТЬСЯ !
И тогда - абзац. То, для чего ты ЭТО делал, работать не будет...:)
И к тому же, кто-то ещё может так же бегать и дёргать генератор........


 
Fidel   (2005-10-04 18:01) [3]


> количество записей, которые мог бы возвратить запрос, пока
> ты по его набору данных бегаешь, МОЖЕТ ИЗМЕНИТЬСЯ !

Количество записей не меняется.
Я написал,  что привожу немного сокращенный код, но дело в том что, и этот приведенный сокращенный код работает так же как мной описано. Т.е. никаких дополнительных наворотов нет, ничего более нигде не делается ни на клиенте ни на сервере.


 
Desdechado ©   (2005-10-04 18:06) [4]

генератор - объект транзакционно-независимый

но вопрос со смыслом операций - открыт
что это должно делать?


 
Fidel   (2005-10-04 18:14) [5]


> генератор - объект транзакционно-независимый

В том то и дело что транзакционно-независимый, однако складывается ощущение каой-то непонятной связи между двумя базами, хотя ее абсолютно нет.

> что это должно делать?

Я думаю что это не важно. Это можно сделать и другим способом, но важен сам факт, того что приведенный код ведет себя очень странно.
А в общем все просто -  на основе данных из таблицы из первой базы данных, формируются данные для другой таблицы во второй базе данных, ну и соответственно туда добовляются, а генератор генерирует значение


 
Fidel   (2005-10-04 18:15) [6]

Я думаю что это не важно. Это можно сделать и другим способом, но важен сам факт, того что приведенный код ведет себя очень странно.
А в общем все просто -  на основе данных из таблицы из первой базы данных, формируются данные для другой таблицы во второй базе данных, ну и соответственно туда добовляются, а генератор генерирует значение ключевого поля таблицы


 
Desdechado ©   (2005-10-04 18:19) [7]

а что, сложно назначать коды в триггере BEFORE INSERT?


 
Fidel   (2005-10-04 18:23) [8]

А вот и еще одна фишка - невероятно но факт, так тоже не работает, вернее работает но с зависанием.


 
Desdechado ©   (2005-10-04 18:31) [9]

так работает или виснет?
может, сервер перегружен?
это разные сервера или разные БД на одном сервере?
версии серверов и клиента?

видимо, что-то химичишь и скрываешь за словами "не важно"
а догадываться, что ты недоговорил, не интересно


 
Fidel   (2005-10-04 18:35) [10]

Не серьезно ничего не химичу.
Я же писал генератор генерирует следующее число, но с эффектом зависания, т.е. через определенное время.
Базы висят на одним сервере. Сервер FB1.5
Сервер не перегружен т.к. никто с базам не работает.



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

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
14-1128548919
Eleepod
2005-10-06 01:48
2005.10.30
GMail - вы все еще кипятите?


3-1126973127
Tonich
2005-09-17 20:05
2005.10.30
Числа в базе данных


1-1128323400
lexandr
2005-10-03 11:10
2005.10.30
RXRichEdit и рисунки


2-1128645090
beglec
2005-10-07 04:31
2005.10.30
Как запустить приложение без формы?


1-1128491589
denmin
2005-10-05 09:53
2005.10.30
Как передать параметр в вызываемую программу?