powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / При добавлении триггера не обновляет данные
4 сообщений из 4, страница 1 из 1
При добавлении триггера не обновляет данные
    #34274536
vadim_ps
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, у меня такой вопрос:
есть БД приблизительно на 800 таблиц, на сервере
Adaptive Server Enterprise/12.5.0.3/EBF 11449 ESD#4/P/NT (IX86)/OS 4.0/rel12503/1939/32-bit/OPT/Sat Sep 20 22:28:57 2003.
Её использует ВебКлиент, который подключён к серверу через JODBC.
Так вот, сама проблема, если нет триггеров на таблицы, то всё работает стабильно и нормально стоит добавить триггеры (даже просто пустые, выполняющие пустой select), обновления не происходит... тобишь не срабатывает запрос на Update, при этом ошибки никакой не выдаёт, ни в лог ни куда, как-будто всё нормально, но запрос не проходит. Если подрубаться через ISQL, то все работает стабильно с триггерами или без, пытался воспроизвести эту ошибку всеми способами через ISQL - не получилось, всё стабильно. Не подскажите, в чём может быть проблема?

Заранее прошу прощения за может быть допущенные ошибки в описании, так как не силён в Sybase и java технологиях.
...
Рейтинг: 0 / 0
При добавлении триггера не обновляет данные
    #34275537
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadim_ps пишет:
> Так вот, сама проблема, если нет триггеров на таблицы, то всё работает
> стабильно и нормально стоит добавить триггеры (даже просто пустые,
> выполняющие пустой select), обновления не происходит... тобишь не
> срабатывает запрос на Update, при этом ошибки никакой не выдаёт, ни в
> лог ни куда, как-будто всё нормально, но запрос не проходит. Если

Скорее всего все же триггера здесь ни при чем.
Или триггера люди вообще не умеют писать.

Вопросы такие:
1) Что значит "обновления не происходит" ?
Как вы понимаете, что что-то не происходит ? В деталях.

2) Пример триггера (даже просто пустого, выполняющие пустой select).

Да, кстати, выполнять в триггере простой SELECT на самом деле
нельзя, потому что клиентское приложение просто может быть
не готово к принятию набора данных. Т.е. не будет его выбирать.
В этом случае клиент и сервер подвиснут в вечном ожидании друг
друга (грубо говоря).

Так что рекомендую если и добавлять простые триггера, то
такие, которые НЕ делают SELECT-ов на клиента (SELECT в
переменные допустим).
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
При добавлении триггера не обновляет данные
    #34275885
vadim_ps
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
1) Что значит "обновления не происходит" ?
Как вы понимаете, что что-то не происходит ? В деталях.

Это означает, что не происходит изменение контента, тобишь выполняю запрос update Table set Column=1, а столбец Column всё равно равен 2, и никакой ошибки при этом не выдаётся.

MasterZiv
2) Пример триггера (даже просто пустого, выполняющие пустой select).

какие я только вариации "пустых" тригеров не перепробовал, на данном этапе остановился на
Код: plaintext
1.
2.
3.
4.
5.
6.
create   trigger K_2018871278_upd on MILITARY_PI for update
as
  BEGIN
      declare @tmp integer
      select @tmp =  1  
  END   
У меня такое предчувствие, что дело в количестве тригеров, и при отработке запроса, там происходит переполнение "чего-то там", и транзакция откатывается... может есть какая-нибудь настройка по этому поводу? Хотя я специально писал средство, которое в одной транзакции вставляло и изменяло по 255 записей в каждую таблицу, и проверяло изменились ли записи, и всё прошло нормально, только единственное отличие - оно работало через ODBC, может собака порылась в различии JODBC и ODBC.
...
Рейтинг: 0 / 0
При добавлении триггера не обновляет данные
    #34276347
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadim_ps пишет:
> Это означает, что не происходит изменение контента, тобишь выполняю
> запрос update Table set Column=1, а столбец Column всё равно равен 2, и
> никакой ошибки при этом не выдаётся.

Может не коммитится транзакция ? Это очень может быть,
потому что в ASE вообще
AUTOCOMMIT = ON по умолчанию,
а в JDBC , на сколько я помню, как раз по умолчанию
AUTOCOMMIT = OFF.

Так что напр. если делаешь в ISQL
UPDATE XXX set qqq = 'kkk' where ....
go

запись изменится, но если делаешь
это через JDBC, надо делать
UPDATE XXX set qqq = 'kkk' where ....;
COMMIT;

т.е. добавлять COMMIT .
(Или можно конечно перевести коннекцию в состояние
AUTOCOMMIT = ON).

Я могу ошибаться на счет дефолта на
AUTOCOMMIT в JDBC, но проверить стоит все равно.

> какие я только вариации "пустых" тригеров не перепробовал, на данном
> этапе остановился на
>
> create trigger K_2018871278_upd on MILITARY_PI for update
> as
> BEGIN
> declare @tmp integer
> select @tmp = *1*
> END

Это нормальный триггер , не должен он ломать ничего.

> У меня такое предчувствие, что дело в количестве тригеров, и при
> отработке запроса, там происходит переполнение "чего-то там", и
> транзакция откатывается... может есть какая-нибудь настройка по этому
> поводу?

Нет. Триггер на таблицу всегда только один (на каждое действие)
и ограничений на их количество нет.

Хотя я специально писал средство, которое в одной транзакции
> вставляло и изменяло по 255 записей в каждую таблицу, и проверяло
> изменились ли записи, и всё прошло нормально,

Э, если это делать в ОДНОЙ КОННЕКЦИИ, ты просто не заметиш, что
у тебя транзакция незакоммичена еще. А когда сделаешь DISCONNECT,
все откатится.

только единственное
> отличие - оно работало через ODBC, может собака порылась в различии
> JODBC и ODBC.

Ну похоже на AUTOCOMMIT = ON/OFF by default. Проверь по крайней мере.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / При добавлении триггера не обновляет данные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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