Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / наверное глюк... / 7 сообщений из 7, страница 1 из 1
09.10.2006, 15:31
    #34041966
sasha27
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
наверное глюк...
Все привет...
Заметил такую весчь в ASA 9... стал криво работать мастер при создании тригеров к таблице... Ниже пример...

ALTER TRIGGER "test" before insert order 1 on
DBA.conn_db
for each row /* REFERENCING NEW AS new_name */
/* WHEN( search_condition ) */
begin
/* Type the trigger statements here */
end

В чем именно косяк: строка /* REFERENCING NEW AS new_name */ расположена на строке for each row, а должна быть выше ее. Еще DBA.conn_db без двойных кавычек... и буквы маленькие...

Для эксперимента сделал новую базу, добавил одну таблицу и сделал к ней триггер через мастера. Все нормально.

ALTER TRIGGER "retret" BEFORE INSERT
ORDER 1 ON "DBA"."qw"
/* REFERENCING NEW AS new_name */
FOR EACH ROW /* WHEN( search_condition ) */
BEGIN
/* Type the trigger statements here */
END

Еще небольшая проблемма при сохранении процедур, функций и триггеров.
Нажимаю F5 для сохранения и все пробелы убираются, большие буквы заменяются на малые и исчезает табуляция в тексте...
Что было ...
ALTER TRIGGER "test" before insert order 1 on
"DBA"."conn_db"
REFERENCING new AS newval
FOR EACH ROW
BEGIN
// это тест
set newval.ip_name = string((select now(*))); // тест 2

END

Что стало после нажатия F5...

ALTER TRIGGER "test" before insert order 1 on
DBA.conn_db
referencing new as newval
for each row
begin
// это тест
set newval.ip_name=string((select now(*))) // тест 2
end

иногда помогал Unload базы и заливка все в пустую БД...
потом и это помогать перестало...

Мож кто встречался с этим... Поделитесь идеями...
...
Рейтинг: 0 / 0
09.10.2006, 15:34
    #34041979
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
наверное глюк...
sasha27 wrote:

> В чем именно косяк: строка /* REFERENCING NEW AS new_name */ расположена
> на строке for each row, а должна быть выше ее. Еще DBA.conn_db без
> двойных кавычек... и буквы маленькие...

Прикалываешся, что ли?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
09.10.2006, 15:40
    #34042004
sasha27
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
наверное глюк...
Dim2000
sasha27 wrote:

> В чем именно косяк: строка /* REFERENCING NEW AS new_name */ расположена
> на строке for each row, а должна быть выше ее. Еще DBA.conn_db без
> двойных кавычек... и буквы маленькие...

Прикалываешся, что ли?
Posted via ActualForum NNTP Server 1.3

Ну создайу себя триггер любой и посмотри на размер шрифта и расположение служебных слов... А потом посмотри что у меня получается...
Если раскомментарить REFERENCING NEW AS new_name и потом попытаться сохранить, то вылетает ошибка! Долго я ее ловил... :-(
...
Рейтинг: 0 / 0
09.10.2006, 15:54
    #34042064
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
наверное глюк...
sasha27 wrote:

> Ну создайу себя триггер любой и посмотри на размер шрифта и расположение
> служебных слов...

И мне, и серверу абсолютно всё равно, где расположены служебные слова и
в каком регистре написано название таблиц. Если тебе не всё равно - это
твои проблемы.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
09.10.2006, 16:05
    #34042103
sasha27
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
наверное глюк...
Dim2000
sasha27 wrote:

> Ну создайу себя триггер любой и посмотри на размер шрифта и расположение
> служебных слов...

И мне, и серверу абсолютно всё равно, где расположены служебные слова и
в каком регистре написано название таблиц. Если тебе не всё равно - это
твои проблемы.
Posted via ActualForum NNTP Server 1.3

Регистр это просто маленькая неприятность
а вот с расположением беда! На счет порядка ты не прав
Вот такой текст сохранится:

CREATE TRIGGER "test" before insert order 1 on
DBA.conn_db
for each row /* REFERENCING NEW AS new_name */
/* WHEN( search_condition ) */
begin
/* Type the trigger statements here */
end

А если разкомментарить REFERENCING, то вылетает ошибка!
Посмотри описание "CREATE TRIGGER statement"
Вот мне база такую хрень и выдает... Абыдна...
...
Рейтинг: 0 / 0
09.10.2006, 18:03
    #34042581
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
наверное глюк...
Когда база перезаливается, в скрипте отключается опция сохранения форматирования скриптов PRESERVE_SOURCE_FORMAT. Без нее форматирование не сохраняется и показывается только откомпиленный ASA-шный скрипт. Если скрипт загрузки не выполнить до конца, где эта опция обратно включается, то будем иметь эффект вышеописанного, то есть форматирование самой ASA. Для этого заходим в опции БД, включаем обратно опцию и далее играясь с reload.sql не забываем, что в начале скрипта много чего отключается и в конце скрипта много чего включается - нельзя останавливать выполнение на середине, иначе будем получать такие эффекты
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
09.10.2006, 18:08
    #34042601
sasha27
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
наверное глюк...
ASCRUS

УРА!!!!
ЗАРАБОТАЛО!!! Спасибище огромное!!!
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / наверное глюк... / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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