Как заставить программу с embedded firebird работать с удаленной базой?
Есть одна программа для ведения домашней бухгалтерии (Sanuel Family), которая, судя по библиотеке fbclientd20.dll и *.fdb файлам, использует эмбед-версию СУБД firebird. Сейчас она установлена на одном компьютере с удаленным доступом, через который и осуществляется работа с программой.
Удобнее было бы иметь по клиенту на каждом ПК с одной базой. Одним из простых решений было бы разместить базу в дропбоксе, однако, пользователи сообщают о возникающих проблемах и поломках базы (грешат на синхронизацию дропбокса, за правильность гипотезы не ручаюсь).
Была идея написать прокси-библиотеку, передающую через сеть данные на удаленную машину, где данные скармливаются локальной базе и ответ отсылается обратно. И это, пожалуй, работало бы, но тут недостаточно использовать какой-нибудь автогенератор прокси-dll, не говоря уже о бэкенде.
Чувствую, что есть какое-то другое решение, попроще. Может быть подобные средства уже есть? Может быть можно заменить embed-версию библиотеки на не-embed и прописать удаленный адрес базы в conf?
Гарантируется использование программы только одним клиентом в текущий момент времени.
100% решение не подскажу (с программирование знаком весьма отдалённо), но могу подсказать как работает ФБ. Для работы по сети на компе котором хранится БД - должен быть установлен FireBirdServer, который будет готов работать по сети. На клиентских машинах достаточно набора библеотек с помощью которых Клиентское приложение будет обращатся по сети с машиной хранящей БД. Обычно это GDS32.dll (либо fbclient.dll), msvcp71.dll и msvcr71.dll. Как заставить конкретно ваше приложение обращатся к Сетевой БД - уже другой вопрос. Стандартная путь для сетевого подключения обычно выглядит так: IP/Port:<Путь к бд>. Допустим 192.168.0.5/3050:D:\Sanuel\DB\sanuel.fdb . 3050 дэфалтный Порт подключения.
З.Ы. Библиотеки клиента и сервера должны быть одинаковыми иначе могут всплыть нюансы. Например известен случай когда клиентская библиотека ФБ 2.5.2 ложил сервер ФБ 2.0.3