![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Куда деваются милисекунды? (Time type) [IB6.x, FireBird]
NeyroSpace © (2002-10-16 18:00:00)При вставке записи время дается только с секундной точностью, хотя тип Time может хранить до десятитысячных сек.
Как это исправить?
(т.е. получаю 17:54:09.0000)
Johnmen (2002-10-17 17:47:00) [1]Лично я не видел.
NeyroSpace (2002-10-17 17:39:00) [2]Т.е. в настройках сервера ничего такого нет?
Johnmen (2002-10-17 17:37:00) [3]Ну так попробуй из приложения прописывать с большей точностью...
Хотя не уверен, что получится.
М.б. это задел на будущее...
Альтернативы мне не известны...:)
NeyroSpace (2002-10-17 17:23:00) [4]Johnmen © (17.10.02 15:50)
Зачем тогда тип Time с такой точностью и какая альтернатива NOW ?
Johnmen (2002-10-17 15:50:00) [5]Видимо ф-ия Now возвращает время с точностью до секунды...
Reindeer Moss Eater (2002-10-17 15:39:00) [6]В общем я бы сделал так:
Для LogTable создал бы триггер на вставку, в котором бы заполнял поле содержащее время. И при этом не использовал бы CAST.
А запрос insert into logtable (id,text) values (1,cast("now" as time));
заменил бы на
insert into logtable (id) values (1);
NeyroSpace (2002-10-17 15:20:00) [7]Ну как тебе сказать...
Есть много таблиц, все изменения отслеживаются триггерами в каждой таблице и записываются в одну - LOG таблицу.
В окончательном варианте будет записываться или произведенный SQL запрос для любой таблицы или обратный SQL запрос.
Т.е. LOG это будет таблица транзакций по которой можно будет восстановить все действия производимые с записями.
В MSSQL Server вроде такая таблица создается самим сервером... по ней восстанавливают данные после сбоя.
Но кто-ниб знает почему у меня не получает сохранить инфу о миллисекундах?
Reindeer Moss Eater (2002-10-17 15:09:00) [8]>NeyroSpace ©
А теперь скажи мне, зачем в поле "TEXT" таблицы "LOGTABLE"
писать время, запросом, выполняемым в триггере другой таблицы, когда для LOGTABLE можно написать свой собственный триггер на вставку?
NeyroSpace (2002-10-17 14:52:00) [9]Триггер же пишет в другую таблицу и в его теле выполняется запрос:
insert into logtable (id,text) values (1,cast("now" as time));
Но при просмотре вставленной записи, точность только до секунд, а дальше 0000
Reindeer Moss Eater (2002-10-17 11:48:00) [10]Так если есть триггер на вставку и именно он пишет в поле текущее время, зачем приводить в качестве примера запрос клиента?
Тем более, что значение, вставляемое с клиента, при этом никуда не попадет?
NeyroSpace (2002-10-17 11:37:00) [11]Конечно! НЕТ!
Триггер делает вставку в таблицу логов.
Упращенно запрос выглядит так.
Reindeer Moss Eater (2002-10-17 11:28:00) [12]Это такой текст триггера???
NeyroSpace (2002-10-17 11:22:00) [13]Смотрю IBExpert"ом или DBExplorer"ом везде вместо милисек. 0000.
insert into test (id,text) values (1,cast("now" as time))
ЮЮ (2002-10-17 10:11:00) [14]А смотришь чем? Откуда такая увереннрсть, что мс обрезаны? Ведь хранится float. Кому потребовалось пребразовывать полученное из NOW значение перез записью?
NeyroSpace (2002-10-17 10:03:00) [15]Время пишется триггером из NOW
Alexandr (2002-10-17 06:16:00) [16]не все библиотеки доступа это понимают.
ЮЮ (2002-10-17 04:00:00) [17]>При вставке записи время дается только с секундной точностью
Кем даётся? Попроси, чтобы больше давали :-)
>т.е. получаю 17:54:09.0000
Чем получаешь? Как? Я, при желании, могу и 17:54 получить. Всё зависит от формата отображения, а не от хранящейся величины