Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.154.41] |
|
Сообщ.
#1
,
|
|
|
Всем добрый день/вечер.
Появилась задача работы с файлами dbf из программы на C/C++. Читать, писать, одновременный доступ, индексы. Т.е. функционал аналогичный dBase, Clipper, Foxpro, если кто то помнит такие системы. Требуется библиотека типа CodeBase или подобная. Поиски не дали результатов (как правило ссылки старые). Может кто нибудь что нибудь посоветовать? Буду очень благодарен. |
Сообщ.
#2
,
|
|
|
Стандарт описан давно в чем проблема?
|
Сообщ.
#3
,
|
|
|
Стандарт чего?
Имеете ввиду структура dbf-файла? Я говорю про библиотеку работы с dbf/idx/cdx. Работу с совмесным доступом и блокировками, с set relation и т.п. Это не тривиальная задача которая выходит далеко за рамки открыть dbf. прочитать заголовок и найти/записать данные. Объем работ по созданию такой библиотеки существенно больше чем стоящая передо мной сейчас задача. Поэтому ищу готовую библиотеку. |
Сообщ.
#4
,
|
|
|
ms1, не уверен, что все это есть для твоих задач. Технология старая и тупиковая.
Если по существу - смотреть в сторону ODBC, типа "Microsoft Access Database Engine 2010 Redistributable" для винды, или купить кросс-платформенную софтину типа "Progress". Но мой совет - уходить от этого нужно срочно в сторону клиент-серверов. Благо конвертеров данных пруд пруди. |
Сообщ.
#5
,
|
|
|
JoeUser, спасибо за ответ.
Есть точно. По крайней мере раньше была такая библиотека, CodeBase, в исходниках. Весьма достойная. Сейчас у меня ее нет, да я и не уверен что ее будет легко скомпилировать под Win. Было что то еще, но не помню уже. ODBC пока не хочется, хотелось бы чтот легкое - статически или динамически компонуемая библиотека, либо исходники из которых ее можно собрать. Технология старая, согласен. Тупиковая не соглашусь, единственно может только из за той же старости, скорее уже "не модная", но речь не об этом. Заменить на чтото другое нельзя. Надо работать с существующей БД совместно с уже написанной большой системой. Поэтому никакакие другие варианты невозможны. По крайней мере на текущем этапе. |
Сообщ.
#6
,
|
|
|
Цитата ms1 @ Тупиковая не соглашусь, единственно может только из за той же старости, скорее уже "не модная", но речь не об этом. Нет. Именно тупиковая. Простой пример - 1С 7.7 с файловым доступом. Более менее приличная база, и все, более 5-7 рабочих станций общую производительность вгоняют в ступор. Из-за избыточности перегоняемых данных по сети. Приходится городить терминальные сеансы. Вывод - от многопользовательского сетевого файлового доступа нужно избавляться. Будь то DBase, Paradox, Btrieve ... Не суть. Ну, а коль уже существует некоторая большая система, я бы задумался о том, чтобы на месте хранения файлов БД разработать и поднять тонкого клиента, и уже с ним налаживать взаимодействие по сети. А тонкий клиент пусть работает по ODBC. Чисто ИМХО. |
Сообщ.
#7
,
|
|
|
Цитата JoeUser @ Более менее приличная база, и все, более 5-7 рабочих станций общую производительность вгоняют в ступор. Я бы даже сказал 3-5 клиентов. И проблема не только и даже не столько в скорости и загрузке сети, сколько в том, что при сбое на стороне одного из клиентов в процессе изменения таблицы эта таблица портится. Чем больше клиентов, тем больше вероятность того что ктонибудь из них зависнет/у него отрубят питание и т.п. Поэтому (мое мнение естественно) не "тупиковая", а не применимая в задачах у которых более 5 пользователей. Понятно про масштабируемость, понятно что всегда "потом захочется большего", но еще раз повторю, вопрос стоит не в принципе построения системы. Этот вопрос не в моей власти. Еще насчет тупиковости: dbf неплохо применима как локальная база одного приложения на одном компьютере, возможно с совместным доступом из разных потоков или разных экземпляров программы. |
Сообщ.
#8
,
|
|
|
Цитата ms1 @ dbf неплохо применима как локальная база одного приложения на одном компьютере SQLite 3 еще более неплохо, на порядок. |
Сообщ.
#9
,
|
|
|
Согласен. Более того, первоначально хотел сформулировать эту фразу примерно как:
"dbf неплохо применима как локальная база одного приложения на одном компьютере, впрочем теперь есть еще sqlite" Однако мы отвлеклись от темы. Попрежнему прошу откликнуться тех кто может дать рабочую ссылку на библиотеку работы с dbf. |
Сообщ.
#10
,
|
|
|
Есть библиотеки для C++Borlad подойдут ли для С++ не знаю.
PS idx уже давно никто не использует кроме FoxPro. |
Сообщ.
#11
,
|
|
|
xbase не подходит? https://sourceforge.net/projects/xdb/
|
Сообщ.
#12
,
|
|
|
Цитата Bas @ Есть библиотеки для C++Borlad подойдут ли для С++ не знаю. Эти библиотеки в исходниках? Ссылочку можно? Очень большое спасибо. Посмотрю. |