| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > DB vs. Текстовый фйл |
| Автор: TeX 15.12.2008, 08:55 |
| Здравствуйте, уважаемые ! Создал тему здесь, т.к. не знаю куда написать. Суть такая, пишу систему контроляигровым залом, загвоздка стала в выборе средства хранения информации о времени и статусе сеанса. Выбор такой или хранить все в таблице базы данных, которая отображается в DBGrid-e, и каждую секунду пробегать по базе данных и увеличивать на одну секунду время сеанса. Или же отображать данные в обычном StringGrid-e в нем же увеличивать время каждую секунду, но при этом эту информацию дублировать в текстовом файле или в ini файле, чтоб при сбое информация о сеансах не потерялась. Так вот вопрос в чем, что будет меньше потреблять системных ресурсов и что быстрее и надежнее ? Если использовать базу данных, не будет ли для нее напряжной такая нагрузка? Если есть какие-то еще варианты - предлагайте ! |
| Автор: Frees 15.12.2008, 09:13 | ||
можно хранить просто время окончания сеанса, и зачем тебе точность до секунд? может минут достаточно будет? |
| Автор: TeX 15.12.2008, 09:40 |
| Секунды нужны чисто для спецэффектов, в Grid-e подразумевается прогрессбар чтоб нагляднее было сколько осталось. Хотя можно и поминутно это все делать. Те исходники программ, что я нашел в сети не блещут хорошим решением данного вопроса. Все используют базу данных для хранения информации. И тогда попутный вопрос, как лучше увеличивать время по таймеру или в отдельном потоке (в потоках). |
| Автор: Frees 15.12.2008, 09:48 |
| тогда по идее на диске у тебя должно лежать номер машинки и время старта окончания сеанса дак это можно грузить сохранять при помощи обычного TStringList тока не каждую секунду а только при изменений времени окончания и старта а уже прогресс рисуеш в проге анализиру текущее время время старта и время окончания если ничего больше хранить не надо то храни в тексте ну а если ты захочеш например на клиентских машинках видеть такой же прогресс, или вести историю кто когда сколько за машинками сидел то тогда лучше какуюнить сетевую БД использовать |
| Автор: TeX 15.12.2008, 10:14 |
| Скажем так, это будет таблица в которой будет храниться инфа о текущих сеансах. Какая машина, когда сеанс начался, сколько прошло, когда закончится и сколько оплатили. Вот его надо будет дергать для увеличения прошедшего времени и отображения информации. Ну я думаю продвинутого DBGrid-a, будет вполне достаточно, если обновлять раз в минуту. Нагрузка не будет такой сильной. |
| Автор: Frees 15.12.2008, 11:29 | ||
сколько прошло хранить не надо!!! это вычисляемое значение текущее время минус время старта получаеш сколько прошло Добавлено через 3 минуты и 49 секунд попробуй TClientDataSet использовать он умеет в фаил сохронять и загружать а сколько прошло времени сделать вычислимым полем! и DBGrid будет обновлятся вместе с ним |
| Автор: TeX 15.12.2008, 11:56 |
| Тогда как лучше время увеличивать ? В таймере или в потоке с засыпанием потока на 40 секунд скажем. |
| Автор: Frees 15.12.2008, 12:28 |
не увеличивать а перещитывать !! ИМХО в таймере лучше будет |
| Автор: Akella 15.12.2008, 12:52 | ||
ты думаешь, что если ты будешь каждую секунду читать писать/ в базу то твоя будет блестать? Добавлено через 1 минуту и 43 секунды ну не понимаю, ну зачем в базу писать посекундно, хоть даже для наглядности, если можно всё отображать в реальном времени |
| Автор: TeX 15.12.2008, 13:17 | ||||
Одним слдовом, на основании ответов определился с тем как нужно все делать. Спасибо за ответы. Тему можно закрыть. |