|
|
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! при попытке вызвать скрипт из IBExpert Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. на строке SELECT gen_id( "GID_MTG", -gen_id( "GID_MTG", 0 ) ) FROM RDB$DATABASE; вываливает "Token unknown" Генератор "GID_MTG" в этот момент в базе присутствует, поясните почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:23:42 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko, потому что SELECT должен куда-нибудь возвращать данные. Допиши секцию INTO :temVar; А вообще обнуление генератора плохая идея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:28:04 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. Чем нормальный вариант не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:28:40 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
wadman Код: sql 1. Чем нормальный вариант не подходит? его только при отсутствии записей в таблице надо выполнить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:33:04 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:33:23 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Тем, что это DDL, который теоретически внутри PSQL-блока невозможен. некоторый известный изврат, позволяющий это сделать, они еще не проходили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:34:07 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkowadman Код: sql 1. Чем нормальный вариант не подходит? его только при отсутствии записей в таблице надо выполнить Это проблема? Код: sql 1. И всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:35:23 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, туплю походу так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. тоже ругается "Token unknown" заменяю GEN_ID(:gen_name, -GEN_ID(:gen_name, 0 )) на что то другое проходит без проблем. FireBird 2.5, IBExpert 2013.2.15.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 15:55:12 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko, ясен пень тупишь. Имена объектов (будь то таблицы или генераторы) нельзя задавать переменными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:03:50 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
m7mMikhail Tchervonenko, GEN_ID() на что Вы намекаете? что минус нельзя использовать? дело в том что конструкчия вида Код: plsql 1. в сети многократно приводится ка пример обнуления счетчика. Если можн поконкретнее в чем причина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:05:03 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Какой чудесный огород... Все уже придумано до нас. 15408594 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:05:29 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoв сети многократно приводится ка пример обнуления счетчика. Где "в сети"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:05:54 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, ага, теперь понятно, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:05:56 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko> на что Вы намекаете? что минус нельзя использовать? Нет, он намекает на Example. P.S. Gen_ID - это функция. Которую можно вызывать ВНЕ SQL-операторов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:08:13 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, спасибо я только разбираюсь с FireBird немного непривычно после MSSQL и MySQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:13:31 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
wadmanMikhail Tchervonenkoв сети многократно приводится ка пример обнуления счетчика. Где "в сети"? тут и тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:15:00 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko, ты лучше скажи на кой тебе генератор обнулять потребовалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:18:19 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:18:57 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko> я только разбираюсь с FireBird > немного непривычно после MSSQL и MySQL Так в TSQL то же самое, как и в PSQL. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:22:26 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoнемного непривычно после MSSQL и MySQL И часто ты в MS SQL обнулял IDENTITY?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:28:44 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамMikhail Tchervonenko> я только разбираюсь с FireBird > немного непривычно после MSSQL и MySQL Так в TSQL то же самое, как и в PSQL. ну насчет генераторов я бы так не сказал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:31:10 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMikhail Tchervonenkoнемного непривычно после MSSQL и MySQL И часто ты в MS SQL обнулял IDENTITY?.. я автоинкрементами вообще не пользовался (за редким исключением) и всегда считал их злом. Здесь просто проект в котором уже они везде задействованы, приходится пользовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:33:17 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
кстати обнуляю я их не в программе а в скрипте который генерирует таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:34:30 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoкстати обнуляю я их не в программе а в скрипте который генерирует таблицы. Почему этот-же скрипт не (пере)создает генераторы для создаваемых таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:35:50 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoя автоинкрементами вообще не пользовался (за редким исключением) и всегда считал их злом. Что, SELECT MAX(id)+1 рулит?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:38:07 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, почему? Может у него натуральные ключи используются (хотя в MS SQL с триггерами на update будет тяжело) или guid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:44:59 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko> кстати обнуляю я их не в программе Mikhail Tchervonenko> а в скрипте который генерирует таблицы. В скрипте, который генерирует DDL-ы таблиц или в DDL-скрипте их создания? Ибо если второе, то как раз Create/Set Generator - правильное решение, в отличие от выбранного трюка. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 16:58:06 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
wadmanMikhail Tchervonenkoкстати обнуляю я их не в программе а в скрипте который генерирует таблицы. Почему этот-же скрипт не (пере)создает генераторы для создаваемых таблиц? тут согласно внутренней политике все изменения в базе ведутся через скрипты. Если в базе создаётся блок по смыслу связанных таблиц то до первого релиза программы работающей с этим блоком удобно иметь скрипт который создаёт таблицы (если они не созданы ещё), копирует в них какие то данные и изменяет структуру таблиц в хронологическом порядке. При этом желательно если в процессе тестирования какие то данные добавились в таблицы не удалять их без особой нужды (это к вопросу почему просто не пересоздать генераторы). После выхода первого релиза, под каждый новый релиз, создаётся свой скрипт который вносит уже только изменения в структуру таблиц и если необходимо добавляет новые. Это очень удобно если разработку надо вести и вне пределов фирмы, напр, дома на ноуте. Зачекал скрипт из svn, накатил и получил последний вариант структуры базы. Безусловно иногда и дамп базы накатить приходится но это времязатратно и не всегда необходимо. А индексы привык использовать либо из комбинации полей, и только если нужна порядковая нумерация автоинкремент. В некоторых случаях удобны GUID подобные индексы, особенно если нужно уникальность поля не только в рамках таблицы но и в рамбках базы или многих баз. К такому GUID удобно привязывать все (логгирование, блокировки итп вещи если они реализовываются не родными средствами сервера баз данных). Автоинкремент плох, с моей точки зрения, дополнительными проблеммами при синхронизации или слиянии данных. Думаю эти проблеммы и без меня всем хорошо известны. Вот собственно и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 17:06:13 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail TchervonenkoАвтоинкремент плох, с моей точки зрения, дополнительными проблеммами при синхронизации или слиянии данных. у ERP-шников есть правило: первичный ключ (ID-записи) не должен нести НИКАКОЙ информации об объекте в базе. еще раз: НИКАКОЙ! это просто идентификатор записи. если нужно уникальное значение, одинаковое для всех баз (например, штрих-код товара), то заводится дополнительный домен в таблице. а проблемы синхронизации решаются путем дополнительной таблицы, в которой есть домены: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 17:23:39 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko, IBExpert прекрасно умеет генерировать скрипт обновления при сравнении как с контрольной БД, так и со скриптом. Так что напрасно вы себя так мучаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 17:27:22 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисMikhail Tchervonenko, IBExpert прекрасно умеет генерировать скрипт обновления при сравнении как с контрольной БД, так и со скриптом. Так что напрасно вы себя так мучаете. Тут это отчасти с документированием связано итп Да и не я правила устанавливаю (пока). Достоинство скрипта в том что он может и с нуля все сделать и интеллектуально по задуманной логике, на мой испорченный взгляд удобно. Конечно не так как это в Visual Studio реализовано (см. проект базы), но хоть что то. Если бы у FireBird было что то что позволяет напрямую хранить структуру базы и скрипты в SVN как это реализовано в продуктах для MSSQL то было бы намного удобнее. Вообще надо идею подкинуть разработчикам IBExpert сделать интеграцию с svn и git. Было бы удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 17:53:48 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
PEAKTOPMikhail TchervonenkoАвтоинкремент плох, с моей точки зрения, дополнительными проблеммами при синхронизации или слиянии данных. у ERP-шников есть правило: первичный ключ (ID-записи) не должен нести НИКАКОЙ информации об объекте в базе. еще раз: НИКАКОЙ! это просто идентификатор записи. если нужно уникальное значение, одинаковое для всех баз (например, штрих-код товара), то заводится дополнительный домен в таблице. а проблемы синхронизации решаются путем дополнительной таблицы, в которой есть домены: Код: plaintext 1. 2. 3. 4. 5. Да, примерно так на MsSQL и делали всегда. Единственное в качестве первичного ключа всегда пользовал GUID что позволяло обойтись без вышеописанной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 18:00:17 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko Если бы у FireBird было что то что позволяет напрямую хранить структуру базы и скрипты в SVN isql -x и закидывай в SVN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 18:15:11 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисMikhail Tchervonenko, IBExpert прекрасно умеет генерировать скрипт обновления при сравнении как с контрольной БД, так и со скриптом. Так что напрасно вы себя так мучаете. Не назвал бы я такой подход мучением. Вот каждый раз базы сравнивать на предмет, не пропустил ли где-то что-то - вот это мучение. По своему опыту сужу :) P.S. Особенно классно, если две базы различаются одной процедурой, которая в свою очередь отличается только одним символом (условно "+" на "-" поменяли), а експерт честно создает скрипт, который помимо отличающейся процедуры на много строк включает еще и перекомпиляцию всех зависимостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 18:25:00 |
|
||
|
Обнуление генератора
|
|||
|---|---|---|---|
|
#18+
kdvMikhail Tchervonenko Если бы у FireBird было что то что позволяет напрямую хранить структуру базы и скрипты в SVN isql -x и закидывай в SVN. Такое тоже используем. Но только что б потом сравнить что изменили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 18:34:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1563983]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 522ms |

| 0 / 0 |
