Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
2-1128439706
oSa
2005-10-04 19:28
2005.10.30
Список Обьектов


14-1128896558
Bogdan1024
2005-10-10 02:22
2005.10.30
За сколько времени можно выучить Perl?


1-1128571841
Roma112
2005-10-06 08:10
2005.10.30
Икона в приложении


2-1128937322
Rule
2005-10-10 13:42
2005.10.30
загадочная библиотека qtintf70.dll, зачем она нужна ...


14-1129008181
Ega23
2005-10-11 09:23
2005.10.30
С днем рождения! 11 октября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский