Страница 1 из 1

Поиграем в ОБЭП (дата и время в БД)

Добавлено: 08 авг 2003, 13:12
Андрей К
Возможно, что я раздуваю из мухи гиппопотама, и это решается легко и непринужденно, или эта тема уже прогонялась на форуме. Дай-то Бог.
Тогда просто скажите, что я мурзилка неграмотный и подскажите что делать (например как уговорить Галку писать в базу серверное время).

Ситуация такая. В базу записывается дата и время локального компа, соответственно журнал использует те же данные. Единственное что радует - новые данные пишутся в конец журнала (что-то типа стека), т.е. не сортируются по дате. Но не для всех таблиц сделаещь журнализацию, а во всяких там atl_lastdate, atl_lasttime дата с того же локала. Установка даты с сервера не помешает пользователю по незнанию или по злому умыслу править информацию задним числом (просто меняя дату или время на своей машине). А все это не очень приятно, когжа дело касается денег.

Есть еще штука в конфигураторе [NetWork]->TimeServer - устанавливает сервер даты/времени. Может это поможет, но как запустить не понял.

P.S.: Дошли уже то того, что решили писать резидент, который ловит функцию Rundll32 ("Дата и Время").

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 08 авг 2003, 19:04
DarkGreen
Что значит "пишутся в конец журнала"? Нет в реляционных СУБД такого понятия как начало середина или конец таблицы, и куда сервер пишет запись ни когда не известно, так же как и очередность записей.

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 08 авг 2003, 20:19
Андрей К
Как я понимаю.
Галка (реляционная СУБД) состоит из множества таблиц, таблица в свою очередь это файл. Новая информация записывается в конец файла. И уже от NREC'ов зависит как мы видим записи. В Галке энреки могут формироваться через специальную таблицу (т.н. инкрементные номера) или случайно распределенные (тут уж цифры как бог на душу положит). Ну а т.к. NREC индексное поле мы видим соответственно аккуратненько или как попало.

Когда я писал о "конце журнала", :) имел ввиду нечто другое. Например сделали журнализацию по какой-то таблице, открываем ее в журнале и видим примерно следующее:
18/06/2003 какая-то запись
17/06/2003 ............
15/06/2003 ............ и т.д.

Меняем системную дату на 16/06/2003, вводим новую информацию в таблице или модифицируем старую, затем опять возвращаем ее обратно, что-то там сново делаем. А в журнале по этой таблице видим:
18/06/2003 какая-то запись
14/06/2003 ............
18/06/2003 ............
17/06/2003 ............
15/06/2003 ............ и т.д.

Можно конечно отследить, но когда 1000-чи записей удовольствие самнительное.

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 08 авг 2003, 20:19
Андрей К
Как я понимаю.
Галка (реляционная СУБД) состоит из множества таблиц, таблица в свою очередь это файл. Новая информация записывается в конец файла. И уже от NREC'ов зависит как мы видим записи. В Галке энреки могут формироваться через специальную таблицу (т.н. инкрементные номера) или случайно распределенные (тут уж цифры как бог на душу положит). Ну а т.к. NREC индексное поле мы видим соответственно аккуратненько или как попало.

Когда я писал о "конце журнала", :) имел ввиду нечто другое. Например сделали журнализацию по какой-то таблице, открываем ее в журнале и видим примерно следующее:
18/06/2003 какая-то запись
17/06/2003 ............
15/06/2003 ............ и т.д.

Меняем системную дату на 16/06/2003, вводим новую информацию в таблице или модифицируем старую, затем опять возвращаем ее обратно, что-то там сново делаем. А в журнале по этой таблице видим:
18/06/2003 какая-то запись
14/06/2003 ............
18/06/2003 ............
17/06/2003 ............
15/06/2003 ............ и т.д.

Можно конечно отследить, но когда 1000-чи записей удовольствие самнительное.

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 08 авг 2003, 20:19
Андрей К
Как я понимаю.
Галка (реляционная СУБД) состоит из множества таблиц, таблица в свою очередь это файл. Новая информация записывается в конец файла. И уже от NREC'ов зависит как мы видим записи. В Галке энреки могут формироваться через специальную таблицу (т.н. инкрементные номера) или случайно распределенные (тут уж цифры как бог на душу положит). Ну а т.к. NREC индексное поле мы видим соответственно аккуратненько или как попало.

Когда я писал о "конце журнала", :) имел ввиду нечто другое. Например сделали журнализацию по какой-то таблице, открываем ее в журнале и видим примерно следующее:
18/06/2003 какая-то запись
17/06/2003 ............
15/06/2003 ............ и т.д.

Меняем системную дату на 14/06/2003, вводим новую информацию в таблице или модифицируем старую, затем опять возвращаем ее обратно, что-то там сново делаем. А в журнале по этой таблице видим:
18/06/2003 какая-то запись
14/06/2003 ............
18/06/2003 ............
17/06/2003 ............
15/06/2003 ............ и т.д.

Можно конечно отследить, но когда 1000-чи записей удовольствие самнительное.

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 08 авг 2003, 20:21
Андрей К
ПРОШУ ПРОЩЕНИЕ ЗА СПАМ!!!

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 11 авг 2003, 10:33
DarkGreen
Данную картину можно наблюдать только в том случае, если вы позиционируетесь по 0 индексу (NRec) и суррагатная система у вас в галактике инкрементальная, а не случайная. На счет того, чтобы заставить галку писать серверное время, сомневаюсь... Проще наверное установиь юзерам Win XP, сделать их юзерами, а не админами и все права изменять время на локальной машине у них не будет, а при логине выполнять что-нить вроде net time \\MyServer /set

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 11 авг 2003, 16:05
Андрей К
По поводу "данной картины" пишете все правильно, наша система использует случайно распред-ые сурр. ключи, а таблица x$journal находится в списке таблиц исключений и испьзует таблицу сурр. ключей.
И по поводу Win XP(Win2000) все правильно, но не все машины дотягивают до этих операционок, больше половины - Win98 (т.е. фокус с правами не прокатит).
Одно расстройство!

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 11 авг 2003, 18:23
Seybukan
Дык поставь NT 4.0.
или в 98 Винде поставь софтинку штоб прятала от юзверей нижнюю панель, кнопку пуск, сетевое окружение. На фига им это.

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 11 авг 2003, 20:08
yuri_z
XP для синхронизации времени с сервером совсем не обязателен net time \\server /set /yes
Галактику можно запускать из батника,сделав эту команду первой, так-что юзвери могут крутить до запуска сколько угодно. Для особо продвинутых можно поставить в шедулер с интервалом в 5 мин.

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 12 авг 2003, 07:45
DarkGreen
Шедулер, ИМХо, не есть гуд. в интервале 5-ти минут юзверь такого сможет наворотить, что потом без пузыря не разберешься.
Как говорил Автор: Seybukan
Дата: 11-08-03 18:23 MSK+2 либо ставь НТ4, либо устанавливай защищенный рабочий стол, программ таких сейчас в инете валом (вот правда в основном, шарывары и триал, фри не видел)

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 12 авг 2003, 15:10
Андрей К
Проблем на раб. станциях с Win2000(и т.п.) нет, проблема есть только на р.ст. с WIN98. Машины старенькие и "окна" с ядром NT не встанут (покупать новые - дело долгое и муторное, руководство с трудом растается с $).
Порезать рабочий стол и менюшки в принципе выход, но люди паралельно работают в различных прогах не относящихся к Галке, т.е. это индивидуальный подход к юзерам (а если их много?..). Да и до Панели управления можно добраться различными способами.
Я пользуюсь Net time \\NameServer /set /y уже давно (батник с этой командой запускается при входе в сеть, неплохой вариант прописать команду в батник для загрузки Г.),но разве во время работы в Г-ке, нельзя поменять время (в WIN98) или Вы имеете ввиду отслеживать время входа юзера в Галку?

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 12 авг 2003, 19:00
DarkGreen
Почему NT4 не встанет на тачку где работает ВИН98? Нормально встанет, у нас 4 воркстейшн работал на тачке где было 16 ОЗУ и процессор 100MHz

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 13 авг 2003, 18:22
ecasoft
Вообще проблема правильно поднята. Да и если посмотрите документацию по ВИПУ (функции), то там найдете функцию получить время сервера. ТОлько вот журнализация завязана на время компа и видимо разумно написать предложение в Галактику, чтобы журнализация всегда брала время с сервера..иначе смысл ее теряется (журнализации). И все выкрутасы с ужесточением прав пользователей - это неверный подход, по-моему, к проблеме...а если ошиблись? Проблема в журнализации, а не в пользователях и надо ее там и решать. А решить может только Галактика видимо в версии.N.XX :)

Re: Поиграем в ОБЭП (дата и время в БД)

Добавлено: 15 авг 2003, 14:56
DarkGreen
2 Автор: Косякин Игорь
Дата: 13-08-03 18:22 MSK+2

Забрали у юзеров все права (поместили в группу "пользователи" в Вин ХР. Стало меньше проблем и звонков. И соответственно теперь когда юзер говорит, что он "это" не делал, "оно" само, он зачастую прав :-) и приходится программеру разбираться.