Конференция "Прочее" » Хранилище данных
 
  • Пробежал... (28.07.08 11:15) [0]
    Ядро программы должно предоставлять механизма для хранения / извлечения данных, чтобы модули программы могли им воспользоваться.

    Вот думаю в каком формате предусмотреть функции? Что будут делать сторонние модули - черт их знает, какие данные им потребуется хранить - аналогично неизвестно.

    То ли делать функции хранения по типу стандартных:

    function SetParam(IdParam: string; Value: string)
    function SetIntParam(IdParam: string; Value: integer)

    function GetParam(IdParam: string; DefValue: string): string;....
    ...



    ну и так далее. Или предусмотреть еще секции навроде INI-файлов?

    function SetParam(IdSection, IdParam: string; Value: string)



    Или сделать БД / SQL логику? Она сильно отличается...

    У кого может был опыт, что лучше сделать? Какой интерфейс оптимальный для хранения данных, что предусмотреть нужно?

    Модули ну как минимум настройки всякие свои будут хранить...
  • tesseract © (28.07.08 11:20) [1]
    Да любой, чем ini-файлы не устравивают ? Можно в sqlite хранить, если уж очень много настроек будет.
  • b z (28.07.08 11:21) [2]

    > Вот думаю в каком формате предусмотреть функции?
    Это как, простите? В формате С# :), не оно?

    > То ли делать функции хранения по типу стандартных:
    Где стандарт описан?
  • Anatoly Podgoretsky © (28.07.08 11:28) [3]
    > Пробежал...  (28.07.2008 11:15:00)  [0]

    (ID: Integer; Value: Variant);
    (ParamName: string; Value: Variant);
    ..
    (ID: Integer): Variant;
    (ParamName: string): Variant;
  • Johnmen © (28.07.08 11:32) [4]
    Что такое "интерфейс для хранения"?
  • Anatoly Podgoretsky © (28.07.08 11:36) [5]
    > Johnmen  (28.07.2008 11:32:04)  [4]

    Итерфейс - это муждумордие, а если автор что то другое вкладывает в это, то пусть колется.
  • Медвежонок Пятачок © (28.07.08 11:36) [6]
    Вот думаю в каком формате предусмотреть функции?

    А ты знаешь много форматов функций?
  • Пробежал... (28.07.08 11:41) [7]
    >Да любой, чем ini-файлы не устравивают ? Можно в sqlite хранить, если уж
    >очень много настроек будет

    вопрос не в том, как это хранить движку программы. Вопрос в формате функций, предоставляемых модулям для хранения данных в некое абстрактное хранилище.

    Формат функций надо сразу заранее сделать, и потом они не будут меняться (естественно, поэтому и не хочется ошибиться), модули понятие не имеют как физически хранятся данные, но интерфейс нужен.
  • Zeqfreed © (28.07.08 11:54) [8]
    Сохранить/Прочитать/Очистить.
    Остальным должен заниматься сериализатор.
  • tesseract © (28.07.08 11:58) [9]

    > Остальным должен заниматься сериализатор.


    За чем тут сериализатор ? Перегрузкой можно обойтись. Форматов то всего :
    1. Число
    2. Короткая строка
    3. Длинная строка /текст
    4. Бинарные данные
  • Zeqfreed © (28.07.08 12:00) [10]
    > tesseract ©   (28.07.08 11:58) [9]

    Про форматы в посте автора я вообще ничего не вижу.
  • Медвежонок Пятачок © (28.07.08 12:02) [11]
    Вопрос в формате функций

    Используй второй снизу, зеленый.
  • Skyle © (28.07.08 13:00) [12]
    Полюбому делай вот так.
    function SetData(AData : Pointer; ADataSize : Cardinal) : Boolean;

  • Rouse_ © (28.07.08 13:44) [13]
    Когда мне нужно делать что-то подобное для хранения настроек различных классов, я реализую у каждого класса метод SaveToStream и LoadFromStream, а уж как ты будешь сами потоки данных хранить - дело десятое.
 
Конференция "Прочее" » Хранилище данных
Есть новые Нет новых   [134439   +46][b:0][p:0.001]