среда, 7 октября 2009 г.

Проект ldb БД на csv-файлах (v.1)

Лицензия GPL

Итак суть в проекта в том, что если у вас нет поддержки со стороны штатных баз данных, а данные хочется хранить, да еще так чтобы не заморачиваться с доступом к файлам, то этот проект для вас.
 
ldb - простой модуль управления базой данных, хранящей данные в CSV-файле с форматом разметки MS Excel.

При этом один файл хранит одну таблицу из одного столбца. Это ограничение было унаследовано модулем после моего знакомства с ini-файлами. Поэтому такую базу удобнее всего применять для хранения различных настроек.

Формат файла следующий:

"параметр";"значение"

 при этом значение может содержать любые символы, модуль маскирует управляющие символы:

символ
замена
"
""
/
//
;
/;
перевод каретки
/n

Основными интерфейсами модуля являются следующие функции, которые вы и будете вызывать из своих программ при подключенном модуле ldb.


Функции:
  • int ldbExistParam (base, param) Проверка на существование заданного параметра
  • int ldbAddParam (base, param, data) Добавление строки в базу (файл), не рекомендуется (не обеспечивает уникальность записи)
  • int ldbDelParam (base, param) Удаление заданного параметра
  • string ldbGetParam (base, param) Чтение заданного параметра
  • int ldbSetParam (base, param, data) Изменение/добавление заданного параметра (обеспечивает уникальность)
                       
Входные параметры функций:
  • base - путь к csv файлу (от корня сайта)
  • param - параметр
  • data - данные (не более 1024кБ)

Ограничение на размер данных чисто программное, т.к. мне не было необходимости использовать большее количество символов. Поэтому легкой правкой скрипта можно увеличить объем данных.

К своей радости могу сказать что оба модуля уже работают в 2-х проектах и показали свою стабильность.

Исходный код:

TurboDelphi http://dump.ru/file/3541902
PHP http://dump.ru/file/3541904


P.S.:/ К обоснованной критике и предложениям всегда открыт.

Комментариев нет: