powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос по генераторам
25 сообщений из 53, страница 1 из 3
Вопрос по генераторам
    #32412375
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне нужно получить текущее значение генератора в ХП, делаю gen_id(name_gen,0), но есть вопрос, можно ли задать вместо name_gen входной параметр gen_id(:par,0) не проходит.
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32412384
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз не проходит, значит нельзя. Используй EXECUTE STATEMENT...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413210
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>VF

А зачем его вообще получать ? Может не туда роешь...:)
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413363
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с использованием генератора и триггера обновляется первичный ключ, сразу после вставки нужно получить значение этого ключа (последнее, т.е. значение генератора), вот для этого используется ХП, которая и возвращает зн. генератора, можно сделать для каждой таблицы свою ХП, но вот если бы имя генератора передавать как параметр, тогда одной ХП хватило бы...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413371
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFсразу после вставки нужно получить значение этого ключа (последнее, т.е. значение генератора)
Верный способ наступить себе на яйца.
Получать нужно ДО вставки и не текущее, а ИНКРЕМЕНТНОЕ .
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413381
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неправильно делаешь. Т.к. между твоей вставкой и твоим получением генератора кто-то другой страждущий может вставить своё... И ты получишь не то, что хотел...
Правильно так: получить очередное зн.ген-ра (будешь его знать) и потом уже вставить... :)
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413392
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так сначала делается вставка, потом делается gen_id(gen_name,0) и это всё хозяйство в рамках одной транзакции, что может и не пройти?
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413401
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Генераторам, грубо говоря, начхать, на твои рамки транзакции.
Они ВНЕ КОНТЕКСТА транзакций.
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413415
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял исправлюсь...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413420
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ему ведь это скорее всего нужно для того чтобы запись обновить... В принципе если у него пару раз за 100 лет неправильное значение вернёться, то с этим жить можно

2 VF:
Если ты обновляешь записи таким макаром, то лучше заведи табличку отдельную и регистри там все обновления таблиц и посылай из триггеров событие какое-нибудь клиентам - так, мне кажется, будет вернее для многопользовательского доступа.
Можно ещё попробовать генерить имя события, а на клиенте ловить все события, парсить их и обновлять те данные, которые нужно. Но это всё теория опять же - на практике я так не пробовал делать...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413436
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gold
так работает сейчас с отдельной таблицей, но там уже было дело с неправильным значением, не есть гуд это...

вообще тогда поменяю вопрос: как встать в гриде (дельфи) после инсёрта на только что вставленную запись, вот для чего это нужно, локейт встаёт на запись на которой стояли до вставки, вот в чём проблема...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413449
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня на FIBPlus таких проблем нет - всё само правильно позиционируется.
Ты наверное на IBX работаешь. Когда-то я на них тоже работал и припоминаю что у них была такая бага. Попробуй найти более новую версию IBX...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413454
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi 7, то что в комплекте...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413474
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты ж пойми, IBX - это не BDE тебе и Locate здесь перебирает все записи. К тому же в IBX, если мне память не изменяет, нельзя полностью события скрола отключить как в FIBPlus со всякими DisableScrollEvents и т.п., т.е. если у тебя есть дочерняя таблица, то locate вобще медленно работать будет.
Я б тебе посоветовал выкинуть IBX и мигрировать на FIBPlus - они того стоят...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413478
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вся разница в том, что в FIB+ можно неявно получать очередное значение генератора и невно же вставлять. В IBX - нет такой функциональности. Посему надо получать явно очер.зн.ген.
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413491
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой! А куда дели? Всегда была, а тут вдруг нету?..
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413498
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gold
если бы я был один...другие не будт переходить...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413537
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда попробуй в триггере что-то типа:
POST EVENT 'TABLE_1:'||NEW.ID;
Потом лови это на клиенте, парси и делай обновление.

Ещё, как вариант, самому поправить исходники IBX.
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413563
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кого править, хлопцы?!
Или вы считаете, что проперть GeneratorField придумал Буззаджи с Востриковым?!
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413601
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Мимопроходящий
это Ты к чему???
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413615
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это я про то, что в IBX есть свойство такое, спЕцательное.
GeneratorField называется.
Которое тебе как раз и нужно пользовать.
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413618
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а по подробнее, если можно...
ЗЫ очень стыжусь своей некомпетентности и жуткой лени...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413622
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была в IBX бочина что после вставки текущей записью была не вставленная, а другая какая-то (то ли первая, то ли предыдущая). Ключевое поле нормально заполнялось генератором, указанным в GeneratorField, но после выполнения Post курсор почему-то перескакивал на другую запись.
Насколько я понял VF именно на это наступил... Не думаю что он не заметил существование свойства GeneratorField
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413626
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ? Да, действительно есть. Спасибо старине Джеффу :) , большому любителю багофич и просто багов...
Хотя может и работает оно там...
...
Рейтинг: 0 / 0
Вопрос по генераторам
    #32413638
kata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто не знает, есть ещё такой трюк

type
THack = class(TIBCustomDataSet)
end;

...

THack(taJournal).GeneratorField.Field := 'id';
THack(taJournal).GeneratorField.Generator := 'ID_GEN';

если taJournal типа TIBTable а не TIBDataSet
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос по генераторам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]