Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
Просветите плиз, что я не так понимаю в DBINFO('sqlca.sqlerrd1'); Сколько лет использовал эту функцию - ни разу проблем не было. По описанию - возвращает последний вставленный в таблицу сериал. Если вставка была в триггере - значит вернет ее. У меня та 10.tc5 так не получается: Есть таблица. На ее апдейт есть триггер, который добавляет записи во вторую таблицу-лог. Делаю апдейт на первую таблицу. Апдейт проходит, триггер со вставкой - тоже. Но dbinfo в результате возвращает 0 Почему? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. E1_EXPR ----------- 0 Почему процедура возвращает 0 ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2007, 03:37 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
В примере ошибочка вышла. :( Правильный пример - такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2007, 03:44 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
Функция DBINFO...Что бы обеспечить доставерность результата, эту опцию следует использовать сразу после одноименного оператора INSERT, который вставляет в таблицу одну строку, содержащую знчение типа SERIAL... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2007, 10:07 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
TmpFile() Функция DBINFO...Что бы обеспечить доставерность результата, эту опцию следует использовать сразу после одноименного оператора INSERT, который вставляет в таблицу одну строку, содержащую знчение типа SERIAL... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Это все понятно, да, так оно работает. Однако меня это не устраивает - в триггере получать ИД бесполезно - триггер срабатывает при апдейте из разных мест кода. И только в одном месте мне нужно получить ИД вставленного serial-а. Можно, конечно, переделать код, чтобы оно работало по-другому, но просто я хочу разобраться - это фича или бага, что при инсерте в триггере переменная sqlerrd1 не устанавливается, хотя в faq-е когда-то читал, что там хранится значение последнего вставленного serial-а, и если вставка делалась в трггере, то будет и этот сериал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2007, 16:05 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
Чем неподходит так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Я привела цитату из докуметации к информиху. Руководство по синтакису языка SQL. Использование опции 'sqlca.sqlerrd1'. falcon111 хотя в faq-е когда-то читал, что там хранится значение последнего вставленного serial-а, и если вставка делалась в трггере, то будет и этот сериал. и условие функция используется СРАЗУ после INSERT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 06:43 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
TmpFile()Чем неподходит так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. В данный момент оно так и сделано, но ведь это же неправильно и может давать неправильный результат при большом числе подключений и при "завернувшемся" сериале (когда часть строк убрана в архив, и сериал добавляется НЕ с бОльшими значениями) TmpFile()Я привела цитату из докуметации к информиху. Руководство по синтакису языка SQL. Использование опции 'sqlca.sqlerrd1'. falcon111 хотя в faq-е когда-то читал, что там хранится значение последнего вставленного serial-а, и если вставка делалась в трггере, то будет и этот сериал. и условие функция используется СРАЗУ после INSERT Инсерт делается в триггере, поэтому ТАМ это бессмыссленно. А по ходу выполнения кода - я сразу и запрашиваю - сразу ПОСЛЕ выполнения операции, вызывающей сработку триггера. Мне вот интересно - на 9-ке кто-нибудь может проверить работоспособность такого метода? А то что-то у меня ощущение, что это 10-ткины штучки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 16:29 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
У меня дома 9-ка :), на работе 10-ка. Выполняется и там и там одинаково. Цитата из доки по информиху от 9-ки. Задаётся мне Вы не читаете ни документацию, ни посты внимательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 16:58 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
Может в глобальную переменную сразу после инсерта положить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 17:37 |
|
||
|
Че-то все не как в faq-е получается
|
|||
|---|---|---|---|
|
#18+
TmpFile()У меня дома 9-ка :), на работе 10-ка. Выполняется и там и там одинаково. Печально. Значит, так задумано. Буду переделывать чтобы работало по другому. TmpFile()Цитата из доки по информиху от 9-ки. Задаётся мне Вы не читаете ни документацию, ни посты внимательно.[/quit] :-) Ну не знаю. Вопрос потому и возник, что я про триггер в faq-е читал, в мозгу отложилось, вот и рассчитывал реализовать на практике, когда столкнулся. [quot Журавлев Денис]Может в глобальную переменную сразу после инсерта положить? Да. Сейчас, в качестве временного решения стоит затычка select max(..) , но, раз с sqlca у меня пролет, придется делать через глобальные переменные. Всем спасибо. ЗЫ: А вообще вопрос возник от того, что я точно помню что читал про sqlca и триггеры в Faq. А неправильный faq - это плохо (или это у меня проблемы с памятью...) ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 19:41 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=34706884&tid=1608335]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 401ms |

| 0 / 0 |
