Vlad писал(а):
Я сказал "может быть" :)
Я понял, и даже попробовал продумать этот вариант.
Vlad писал(а):
А если надо просто построить график - то как раз достаточно просто тиков ;) Тем более, что время на графике вы скорее всего захотите увидеть относительное. А вот если все-таки хочется на графике видеть абсолютное системное время, то лучше таки писать в базу реальное время и его же показывать (а строить график по тикам).
Вот и получается сложность - пишем по времени, отображаем по тикам, а на оси абсцисс вообще непонятно что. На оси абсцисс интересует именно абсолютное время - в какое время ёмкость заполнилась, и почему задержали отгрузку, например, или какие показатели давления были во время нештатной ситуации в 15:43 и т.п.
А если компьютер несколько раз за сутки перезапускали и счётчик GetTickCount, соответственно, сбрасывался? Значит, нужна дополнительная таблица, в которую при каждом запуске программы записывается текущее время и тик начала отсчёта, этому времени соответствующий. При моей реализации просто глядя в таблицу с данными, и делая к ней простейшие SQL-запросы можно взять, скажем, данные за нужный интервал времени. В вашем варианте для этой типичной задачи потребуется гораздо более сложный алгоритм, работающий с двумя таблицами - и я не уверен, что на SQL его можно написать. А задача эта выполняется всякий раз, когда пользователь хочет посмотреть чуть более старые данные.
Всё-таки я не представляю себе. Вот пользователь, скажем, в 15:55 поправил системное время на 5 минут назад. И стало 15:50. Запись производится кадждые 5 секунд. Стало быть, в БД у нас появится по два значения для каждого графика в интервале с 15:50 до 15:55. По тикам всё замечательно - тики увеличиваются, но как отобразить это на графиках, где ось абсцисс - время? Сделать на оси абсцисс два интервала 15:50-15:55? Или сделать на графиках временной зигзаг?
Задача интересная. Тут я впервые столкнулся с тем, что системное время - это тоже вид ресурса, который нужно захватывать.