Структура DB файлов...

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Pepper
Сообщения: 33
Зарегистрирован: 21 фев 2004, 23:50
Откуда: Мурманск
Контактная информация:

Здравствуйте, All... У меня возникла такая вот проблема:
Я думаю, что ни для кого не секрет, что после использования TTable приходится долго ломать голову как прикрутить BDE к машине пользователя. Вот я и хочу посоветоваться как бы избежать использования этого самого BDE.
Во-первых, я думаю, что можно изучить заголовки DB файла. А во-вторых, я думаю что можно создать свой типизированный файл, и написать для работы с ним какую-нибудь компоненту...
Подскажите пожалуйста, на сколько это осуществимо, и как можно добится этого результата...
Заранее благодарен!
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Есть уже компоненты позволяющие работать с БД без БДЕ или скажем MDAC.
Halcyon например...
Можно скажем использовать .dbf без доп. библиотек.... там теже TTable!
И этот подход как правило быстрее :)
Pepper
Сообщения: 33
Зарегистрирован: 21 фев 2004, 23:50
Откуда: Мурманск
Контактная информация:

GOS, а где про это почитать поподробнее можно?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

TDbf:
http://sourceforge.net/project/showfile ... p_id=34085
http://www.firststeps.ru/cbuilder/bde/r.php?12

Есть способ писать "тонкие" приложения используя TClientDataset с хранением данных в кеш-файле midas. Все как с обычными DB-Aware компонентами, только никаких баз, никаких BDE... Только midas.dll в доступном пути.
Pepper
Сообщения: 33
Зарегистрирован: 21 фев 2004, 23:50
Откуда: Мурманск
Контактная информация:

Это конечно все замечательно... но! (я наверно коряво описал свою задачу) Имелось в виду не использование уже готовых компонент, а создание своих собственных! Я хотел узнать о структуре файлов, что бы потом самому написать компоненту для работы с ним; или узнать, может есть смысл создать свой типизированный файл и так же с ним работать через свою компоненту.
Есть идеи, господа?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Если сделать плоский типизированный файл, то поиск будет неэффективным.
Одного типизированного файла мало, нужна еще какая-либо схема индексирования данных (индексные таблицы), которая обеспечит выборку данных в нужном порядке. Разумеется индексы надо вовремя перестраивать (при добавлении/удалении данных, а также при изменении ключевых (индексируемых) элементов данных.

Работать с типизированным файлом элементарно.
FileSeek
ReadBuf
WriteBuf
Ну и функции открытия/закрытия файла.

Есть еще возможность блокировать часть файла (на некоторый период), чтобы другие приложения (в случае многопользовательской работы) не мешали.
Pepper
Сообщения: 33
Зарегистрирован: 21 фев 2004, 23:50
Откуда: Мурманск
Контактная информация:

Ладно, я вопрос по другому поставлю, меня походу не понимает никто. Как написать компонент наподобие TDBF но только для работы с DB файлами?
GOS
Сообщения: 111
Зарегистрирован: 17 фев 2004, 10:32
Контактная информация:

Мне тут Aik дал ссылочку (http://www.randybeck.com) так вот там структура db фалов описана!
Вот и пиши наследника TDataSet с учётом всего изложенного там. Может новую библиотеку компонент напишешь :)
Pepper
Сообщения: 33
Зарегистрирован: 21 фев 2004, 23:50
Откуда: Мурманск
Контактная информация:

GOS, спасиба огромное, это как раз то, что я искал!
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Pepper, если бы ты сказал изначально, что тебе нужен формат Paradox'овых таблиц, то ссылку 11 апреля получил :)
Даже самый дурацкий замысел можно воплотить мастерски
Ответить