powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обнуление генератора
25 сообщений из 37, страница 1 из 2
Обнуление генератора
    #38524493
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!

при попытке вызвать скрипт из IBExpert
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SET TERM ^ ;

EXECUTE block
as
begin
   ........
   if (not exists(SELECT 1 FROM MESSEMTG)) then
   begin
      /* reset generator */
      SELECT gen_id( "GID_MTG", -gen_id( "GID_MTG", 0 ) ) FROM RDB$DATABASE;

      .........
   end
.........

end^

SET TERM ; ^
.......



на строке SELECT gen_id( "GID_MTG", -gen_id( "GID_MTG", 0 ) ) FROM RDB$DATABASE;
вываливает "Token unknown"
Генератор "GID_MTG" в этот момент в базе присутствует, поясните почему?
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524502
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

потому что SELECT должен куда-нибудь возвращать данные. Допиши секцию INTO :temVar;
А вообще обнуление генератора плохая идея.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524505
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SET GENERATOR <name> TO <value>;


Чем нормальный вариант не подходит?
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524519
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman
Код: sql
1.
SET GENERATOR <name> TO <value>;


Чем нормальный вариант не подходит?
его только при отсутствии записей в таблице надо выполнить
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524520
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

спасибо
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524525
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем, что это DDL, который теоретически внутри PSQL-блока невозможен.
некоторый известный изврат, позволяющий это сделать, они еще не проходили.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524529
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkowadman
Код: sql
1.
SET GENERATOR <name> TO <value>;



Чем нормальный вариант не подходит?
его только при отсутствии записей в таблице надо выполнить
Это проблема?

Код: sql
1.
select first 1 id from sometable into :id


И всё.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524582
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

туплю походу
так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SET TERM ^ ;
......
create or alter  procedure reset_gen(gen_name varchar(10))
as
declare variable V_TEMP Integer;
begin
    select GEN_ID(:gen_name, -GEN_ID(:gen_name, 0 ))
    from RDB$DATABASE
    into :V_TEMP;
end^
........


тоже ругается "Token unknown"
заменяю GEN_ID(:gen_name, -GEN_ID(:gen_name, 0 )) на что то другое проходит без проблем.
FireBird 2.5, IBExpert 2013.2.15.1
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524591
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

GEN_ID()
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524608
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

ясен пень тупишь. Имена объектов (будь то таблицы или генераторы) нельзя задавать переменными.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524613
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7mMikhail Tchervonenko,

GEN_ID()

на что Вы намекаете? что минус нельзя использовать?
дело в том что конструкчия вида
Код: plsql
1.
.... gen_id( "GID_MTG", -gen_id( "GID_MTG", 0 ) ) ....


в сети многократно приводится ка пример обнуления счетчика.
Если можн поконкретнее в чем причина.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524615
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
create or alter  procedure reset_gen(gen_name varchar(10))
as
declare variable V_TEMP Integer;
begin
    select GEN_ID(:gen_name, -GEN_ID(:gen_name, 0 ))
    from RDB$DATABASE
    into :V_TEMP;
end^


Какой чудесный огород... Все уже придумано до нас. 15408594
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524616
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoв сети многократно приводится ка пример обнуления счетчика.
Где "в сети"?
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524617
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

ага, теперь понятно, спасибо
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524621
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko> на что Вы намекаете? что минус нельзя использовать?

Нет, он намекает на Example.

P.S. Gen_ID - это функция. Которую можно вызывать ВНЕ SQL-операторов.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524632
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

спасибо

я только разбираюсь с FireBird
немного непривычно после MSSQL и MySQL
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524638
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanMikhail Tchervonenkoв сети многократно приводится ка пример обнуления счетчика.
Где "в сети"?

тут и тут
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524643
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

ты лучше скажи на кой тебе генератор обнулять потребовалось?
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524646
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkowadmanпропущено...

Где "в сети"?

тут и тут
По второй ссылке если прекрасный текст и я с ним согласен:
авторThis is more of a dirty little trick to do what you normally cannot and should not do in SPs and triggers: setting generators. They are for getting, not setting values.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524655
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko> я только разбираюсь с FireBird
> немного непривычно после MSSQL и MySQL

Так в TSQL то же самое, как и в PSQL.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524668
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoнемного непривычно после MSSQL и MySQL
И часто ты в MS SQL обнулял IDENTITY?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524678
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамMikhail Tchervonenko> я только разбираюсь с FireBird
> немного непривычно после MSSQL и MySQL

Так в TSQL то же самое, как и в PSQL.


ну насчет генераторов я бы так не сказал
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524683
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMikhail Tchervonenkoнемного непривычно после MSSQL и MySQL
И часто ты в MS SQL обнулял IDENTITY?..

я автоинкрементами вообще не пользовался (за редким исключением) и всегда считал их злом. Здесь просто проект в котором уже они везде задействованы, приходится пользовать.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524689
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати обнуляю я их не в программе а в скрипте который генерирует таблицы.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524692
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoкстати обнуляю я их не в программе а в скрипте который генерирует таблицы.
Почему этот-же скрипт не (пере)создает генераторы для создаваемых таблиц?
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обнуление генератора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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