Approach to using Base with A Firebird server on a network

In developing a simple solution for a small business, I needed to create a simple database accessible by a few users.

Since MS Access can handle multiple concurrent users (although not in the best way), I could have used that. But MS licensing has become difficult. So I decided to try Base.

As all who are more familiar with Base knew, and I now know, Base does not handle multiple concurrent users. At least at this time (Libre Office 6.2.8). So I came to the eventual (expensive in my time) realization that I needed to implement a true database engine. Obviously, there are multiple options. I have had a lot of experience with MySQL, but decided to follow the Document Foundations preference for Firebird from Russia. (Besides, Stravinsky’s Firebird suite is a superb work of music).

So I set out to implement and ran into various issues:

  • network using MS Home network approach (domains are so much nicer, but difficult to justify the management overhead for a small business)
  • needing to use JDBC instead of ODBC as the Firebird and LibreOffice Developers appear to have a strong preference for JDBC leaving ODBC implemented but not working well. I tried ODBC first as I have used it for decades, but ran into unexplainable issues, so decided to listen to @Ratslinger here and switch to JDBC. Which means I had to try to understand how to even use it.
  • etc

I solved all the issues and the solution is working. I thought it would be beneficial for the community to have the approach documented, so I will post an answer to this with my approach as a step by step. Then others can post other approaches as well.

Nice!

Just a remark: the roots of Firebird are in Interbase (which was open-sourced by Borland briefly in early 2000s).

Interesting. Wonder why they only briefly put it in the open source domain.

LO means Libre Office in this document.

Select Machine in office that will be best candidate as server. This machine must be able to be left on all the time and not have a large load like being used to watch movies (remember, talking small business here).

Ensure business has a backup routine functioning

Open port 3050 on firewall of server (Windows Defender Firewall is the default on Windows10, check that other malware preventers are not adding other blocks)

Given that this is a small business, you will want to log into their router and check the DHCP settings. Ensure that the IP address assigned to the server machine does not expire too quickly or make it static.

For Admin Use I chose to install dbeaver Download | DBeaver Community
To use it must have line in firebird.conf (in /Program Files/Firebird/) WireCrypt = Enabled - bounce service after changing

  • don’t use ODBC to connect from LO, but installing the ODBC drivers from Firebird includes some handy tools contained in the ODBC driver. Backup, Restore, Maint and Users. These are accessed through a Services button on the ODBC DSN setup screens.

– manual: https://www.firebirdsql.org/file/documentation/reference_manuals


Take the following steps on all machines to be used.

Install Java JRE - get it at Java.com . Be aware the default Windows download gives you the 32bit version. You have to navigate to find the 64bit Win10 version

Install LO - bitness match

Install latest Firebird – bitness match to Win10

 - if it is the Server – full install

 - for the Client machines – just client section.  Note:  Using LO as the front end probably precludes the need for this but you may want it on the client machines so why not now?

 - Install Firebird JDBC – bitness match

 - get it at https://www.firebirdsql.org/en/jdbc-driver/

  - note that it is not an "register library" like ODBC.  You must unpack it somewhere.  I chose to put it with the other Java stuff at “program files\java”  but this required playing with folder permissions.  I assume it could go anywhere.

 - add to LO Class Path on Tools-Options-Advanced : The Class Path button on the right side of form.  Browse to where you unpacked the Jaybird (Firebird JDBC) and select the Jaybird*Full*  jar file.

In LO select new database → open existing database - use jdbc option
for jdbc connection use
In the jdbc: field use:
For local machine connection (on the server machine): firebirdsql:oo:localhost/3050:c:\users\john\documents\apercudb\apercu.fdb?charSet=UTF-8
or
For remote machines: firebirdsql:oo://192.168.1.140:3050/E:\DISEÑOS\Apercu\apercu.fdb?charSet=UTF-8
Obviously the IP address needs to be the correct one for the Firebird server.

In the Class field put: org.firebirdsql.jdbc.FBDriver

Save the LO Base “document” on the server for central use. Note that the LO Base document contains all the various important client objects like Forms. So when you develop a Form for all the client machines to use, you must get it in every LO Base document that the client machines use. So storing it in a central place makes sense for that issues. However I assume it means the individual clients don’t get to save their respective customizations (sort orders etc).

It would be nice if there was an easy way to distribute those obects (Forms, etc). Otherwise, you can open two different Base documents and copy-paste the objects between. Works fine.

Hope this helps others.

thanks for this. I am about to try and install Firebird server and connect to LO, so your guidance is very useful. Just one question: what machines are on your network? Is the Firebird server on a Windows machine or a Unix system?