powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Кто изменил запись? (ФИО) и дата изменения
6 сообщений из 6, страница 1 из 1
Кто изменил запись? (ФИО) и дата изменения
    #33042621
Фотография Dimyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В faq написано как сделать, чтоб в базе отображалось автоматом кто изменил запись, и все бы здорово, но вот как бы к юзеру прикрутить его Ф.И.О. и чтоб вставлялось в поле "modify_user" именно ФИО?
И еще я пытаюсь сделать как в faq поле даты изменения
Код: plaintext
LastTime timestamp DEFAULT TIMESTAMP
и на ввод значений (в это поле естественно не ввожу т.к. должно по умолчанию прописыватся) выдается ошибка: Невозможно преобразовать TIMESTAMP в timestamp" SQLCODE=-157
...
Рейтинг: 0 / 0
Кто изменил запись? (ФИО) и дата изменения
    #33042657
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimyan пишет:
> В faq написано как сделать, чтоб в базе отображалось автоматом кто
> изменил запись, и все бы здорово, но вот как бы к юзеру прикрутить его
> Ф.И.О. и чтоб вставлялось в поле "modify_user" именно ФИО?

Зачем? Сделай отдельную таблицу-справочник, в которой пропиши
соответствие логинов и ФИО. Джойнись с ней для отображения ФИО.

> И еще я пытаюсь сделать как в faq поле даты изменения
>
> LastTime timestamp DEFAULT TIMESTAMP
>
> и на ввод значений (в это поле естественно не ввожу т.к. должно по
> умолчанию прописыватся) выдается ошибка: Невозможно преобразовать
> TIMESTAMP в timestamp" SQLCODE=-157

Точный номер версии ASA, скрипт метаданных (максимально упрощенный) и
скрипт для ввода значений, который вызывает ошибку. Без этого тебе
помогут только телепаты.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Кто изменил запись? (ФИО) и дата изменения
    #33042662
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В DEFAULT TIMESTAMP вставляется последнее время, а в DEFAULT LAST USER - USER NAME при добавлении или обновлении записи. ФИО туда вставлять не нужно. Гораздо более правильней сделать свою табличку соотвествий:
Код: plaintext
1.
2.
3.
CREATE TABLE UserList (
  User_Name sysname NOT NULL PRIMARY KEY,
  FIO varchar( 70 ) NOT NULL
);

и теперь в любой таблице мы можем получить ФИО оператора, связав поле с "LAST USER" и таблицу UserList с "User_Name":
Код: plaintext
1.
2.
SELECT t1.*, us.FIO
FROM Table1 t1
  INNER JOIN UserList us ON us.User_Name = t1.Operator;

где поле Operator и стояло как DEFAULT LAST USER.

автори на ввод значений (в это поле естественно не ввожу т.к. должно по умолчанию прописыватся) выдается ошибка: Невозможно преобразовать TIMESTAMP в timestamp" SQLCODE=-157
Приведи код создания таблицы - это очень легко - в Sybase Central щелкни на ней в дереве и нажми Ctrl+C. Потом в нотепаде или ISQL нажми Ctrl+V и с буфера возьмешь скрипт создания обьекта. Далее его можно через буфер перенести сюда на форум (сразу не получится, так как в буфер скрипт Cetral по моему ложит в уникоде).
...
Рейтинг: 0 / 0
Кто изменил запись? (ФИО) и дата изменения
    #33042894
Фотография Dimyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со временем разобрался, я просто незнал как код sql посмотреть
(оказалось легко :)) нечайно TIMESTAMP как текст вставил :(
Но у меня по дате еще такой вопрос, как ее отобразить в русском формате,
а то он вот так отображается 2005-04-29 17:02:11.421, т.е. задом на
перед? Я так понимаю 421 это какие то миллисекунды? И можно ли сделать
чтоб дата создания вносилась, автоматом и не менялась при изменении?
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Кто изменил запись? (ФИО) и дата изменения
    #33042923
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimyan пишет:

> Но у меня по дате еще такой вопрос, как ее отобразить в русском формате,
> а то он вот так отображается 2005-04-29 17:02:11.421, т.е. задом на
> перед?

Отображение - проблема клиентской части. Если хочешь на сервере
преобразовать в строку с любым произвольным форматом, то RTFM DATEFORMAT
(функция)

> Я так понимаю 421 это какие то миллисекунды? И можно ли сделать
> чтоб дата создания вносилась, автоматом и не менялась при изменении?

Используй DEFAULT CURRENT TIMESTAMP
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Кто изменил запись? (ФИО) и дата изменения
    #33042939
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не задом наперед, а в универсальном ANSI стандарте :) Отображаться в Централе она будет только так, а вот как в клиенте - это уж проблема клиента, как он умеет работать с датами, хотя все будут отображать согласно региональным настройкам.

P.S. Сразу подсказка по поводу преобразования стрингов в даты - во первых есть опция БД "DATE_ORDER", указывающая порядок распознавания даты, по умолчанию она выставлена в значение "YMD", т.е. Год-Месяц-День. Так же при конвертации стринга можно явно указывать способ обозначения даты в функции CONVERT:
Код: plaintext
SELECT CONVERT(date, '31.01.2005',  104 );
здесь 104 - это указание принять за формат "dd.mm.yyyy". Все форматы описаны в BOL прямо в описании функции CONVERT.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Кто изменил запись? (ФИО) и дата изменения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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