|
|
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
мне нужно получить текущее значение генератора в ХП, делаю gen_id(name_gen,0), но есть вопрос, можно ли задать вместо name_gen входной параметр gen_id(:par,0) не проходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:40 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Ну раз не проходит, значит нельзя. Используй EXECUTE STATEMENT... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:43 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
>VF А зачем его вообще получать ? Может не туда роешь...:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 11:47 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
с использованием генератора и триггера обновляется первичный ключ, сразу после вставки нужно получить значение этого ключа (последнее, т.е. значение генератора), вот для этого используется ХП, которая и возвращает зн. генератора, можно сделать для каждой таблицы свою ХП, но вот если бы имя генератора передавать как параметр, тогда одной ХП хватило бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 12:53 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
VFсразу после вставки нужно получить значение этого ключа (последнее, т.е. значение генератора) Верный способ наступить себе на яйца. Получать нужно ДО вставки и не текущее, а ИНКРЕМЕНТНОЕ . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 12:57 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Неправильно делаешь. Т.к. между твоей вставкой и твоим получением генератора кто-то другой страждущий может вставить своё... И ты получишь не то, что хотел... Правильно так: получить очередное зн.ген-ра (будешь его знать) и потом уже вставить... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 12:59 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
так сначала делается вставка, потом делается gen_id(gen_name,0) и это всё хозяйство в рамках одной транзакции, что может и не пройти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:05 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Генераторам, грубо говоря, начхать, на твои рамки транзакции. Они ВНЕ КОНТЕКСТА транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:08 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
понял исправлюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:11 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Ему ведь это скорее всего нужно для того чтобы запись обновить... В принципе если у него пару раз за 100 лет неправильное значение вернёться, то с этим жить можно 2 VF: Если ты обновляешь записи таким макаром, то лучше заведи табличку отдельную и регистри там все обновления таблиц и посылай из триггеров событие какое-нибудь клиентам - так, мне кажется, будет вернее для многопользовательского доступа. Можно ещё попробовать генерить имя события, а на клиенте ловить все события, парсить их и обновлять те данные, которые нужно. Но это всё теория опять же - на практике я так не пробовал делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:13 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
2 Gold так работает сейчас с отдельной таблицей, но там уже было дело с неправильным значением, не есть гуд это... вообще тогда поменяю вопрос: как встать в гриде (дельфи) после инсёрта на только что вставленную запись, вот для чего это нужно, локейт встаёт на запись на которой стояли до вставки, вот в чём проблема... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:17 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
у меня на FIBPlus таких проблем нет - всё само правильно позиционируется. Ты наверное на IBX работаешь. Когда-то я на них тоже работал и припоминаю что у них была такая бага. Попробуй найти более новую версию IBX... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:20 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Delphi 7, то что в комплекте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:21 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Ты ж пойми, IBX - это не BDE тебе и Locate здесь перебирает все записи. К тому же в IBX, если мне память не изменяет, нельзя полностью события скрола отключить как в FIBPlus со всякими DisableScrollEvents и т.п., т.е. если у тебя есть дочерняя таблица, то locate вобще медленно работать будет. Я б тебе посоветовал выкинуть IBX и мигрировать на FIBPlus - они того стоят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:26 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Вся разница в том, что в FIB+ можно неявно получать очередное значение генератора и невно же вставлять. В IBX - нет такой функциональности. Посему надо получать явно очер.зн.ген. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:30 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Ой! А куда дели? Всегда была, а тут вдруг нету?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:32 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
2 Gold если бы я был один...другие не будт переходить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:34 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Ну тогда попробуй в триггере что-то типа: POST EVENT 'TABLE_1:'||NEW.ID; Потом лови это на клиенте, парси и делай обновление. Ещё, как вариант, самому поправить исходники IBX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:46 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Кого править, хлопцы?! Или вы считаете, что проперть GeneratorField придумал Буззаджи с Востриковым?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 13:57 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
2 Мимопроходящий это Ты к чему??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 14:07 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
А это я про то, что в IBX есть свойство такое, спЕцательное. GeneratorField называется. Которое тебе как раз и нужно пользовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 14:12 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
а по подробнее, если можно... ЗЫ очень стыжусь своей некомпетентности и жуткой лени... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 14:14 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Была в IBX бочина что после вставки текущей записью была не вставленная, а другая какая-то (то ли первая, то ли предыдущая). Ключевое поле нормально заполнялось генератором, указанным в GeneratorField, но после выполнения Post курсор почему-то перескакивал на другую запись. Насколько я понял VF именно на это наступил... Не думаю что он не заметил существование свойства GeneratorField ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 14:16 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Есть ? Да, действительно есть. Спасибо старине Джеффу :) , большому любителю багофич и просто багов... Хотя может и работает оно там... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 14:19 |
|
||
|
Вопрос по генераторам
|
|||
|---|---|---|---|
|
#18+
Кто не знает, есть ещё такой трюк type THack = class(TIBCustomDataSet) end; ... THack(taJournal).GeneratorField.Field := 'id'; THack(taJournal).GeneratorField.Generator := 'ID_GEN'; если taJournal типа TIBTable а не TIBDataSet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 14:23 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32413622&tid=1579144]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 525ms |

| 0 / 0 |
