Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Значение по умолчанию для столбца / 6 сообщений из 6, страница 1 из 1
07.07.2004, 15:04
    #32593587
E-doc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение по умолчанию для столбца
Можно ли в ASA 9.0.1 указать значение по умолчанию для столбца вычисляемое на основании, например, имени пользователя?
...
Рейтинг: 0 / 0
07.07.2004, 17:06
    #32593915
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение по умолчанию для столбца
да конечно. Начиная с первых версий ASA поддерживается синтаксис:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table t (
   .....
    user_who_create_this_record    char( 32 ) default CURRENT USER,
     // а начиная с ASA 8 можно сделать еще одно поле
 
    user_who_modify_this_record    char( 32 ) default LAST USER,
     // а теперь можно и соеденить эти два поля:
 
    users_who_now_something    char( 64 )  COMPUTE(user_who_create_this_record || ', ' || user_who_modify_this_record)
);
 
...
Рейтинг: 0 / 0
08.07.2004, 06:49
    #32594427
E-doc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение по умолчанию для столбца
White Owl

Это немного не то, что мне нужно. Лучше приведу пример: нужно чтобы значение столбца зависело от пользователя, то есть в случае с

Код: plaintext
1.
user_who_modify_this_record  char( 32 ) default LAST USER

оно либо менялось либо нет, что-то вроде такого

Код: plaintext
1.
user_who_modify_this_record  char( 32 ) default (if suser_name() = 'DBA' then LAST USER else 'Simple user' endif)
...
Рейтинг: 0 / 0
08.07.2004, 16:29
    #32595947
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение по умолчанию для столбца
E-doc
Оставьте поле с DEFAULT LAST USER как есть и сделайте себе представление, в котором и будет нужный вычисляемый столбец на основе этого поля. Оградите себя от целой кучи проблем, начиная с перегрузки БД.
...
Рейтинг: 0 / 0
08.07.2004, 18:42
    #32596279
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение по умолчанию для столбца
E-doc White Owl

Это немного не то, что мне нужно. Лучше приведу пример: нужно чтобы значение столбца зависело от пользователя, то есть в случае с
Код: plaintext
1.
user_who_modify_this_record  char( 32 ) default (if suser_name() = 'DBA' then LAST USER else 'Simple user' endif)

А что такое предполагается под suser_name()?
Вообще-то, есть еще системная функция connection_property(), если ее запустить с параметром connection_property('Userid') то получишь имя текущего пользователя.
Но вообще-то, лучше все же записывать в таблицу реальное имя пользователя кто модифицирует таблицу, а потом уже разбирать какие у этого пользователя были права.
...
Рейтинг: 0 / 0
09.07.2004, 06:54
    #32596543
E-doc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение по умолчанию для столбца
White OwlА что такое предполагается под suser_name()?
Это функция, возвращающая имя пользователя, совместимая с ASE.

ASCRUSОставьте поле с DEFAULT LAST USER как есть и сделайте себе представление, в котором и будет нужный вычисляемый столбец на основе этого поля. Оградите себя от целой кучи проблем, начиная с перегрузки БД.
Вопрос задан из необходимости обеспечивать возможность "скрытого update" для конкретного пользователя, чтобы не фиксировать кто и когда изменил запись, работая указанным пользователем. Видимо придется сделать триггером.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Значение по умолчанию для столбца / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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