... (the SQL3 package that came from the Lazarus online packages) crashed my system hard, never even got the first compile to launch)
Just as what dsiders said, if I remember correctly I never installed any package in Lazarus to be able to write Firebird and SQLite programs.
For SQLite, it is installed by default on Linux but as far as I know it is not installed on Windows by default. You don't have to install SQLite actually, you just need to copy the SQLite library to the program folder, or the project folder. If you develop SQLite programs on Linux, you have to install
firebird-dev package first (I recommend using Synaptic Package Manager).
For Firebird, you need to manually install it on your computer because it is not installed by default on Windows and Linux.
SQLite probably is the easiest to start with for beginners. The SQLite library (or some call it client lib) is only 1 single file. To distribute your application, you just need to copy the client lib to the program folder. On Linuxes, you don't need to do anything because it is usually installed by default.
Distributing your program that uses Firebird database, is a bit challenging. For multi-client-connection you have to install and configure the server first. For embedded/local database usage, you need to provide the client lib, which consists of several files, make sure it also includes the license files and set the system environment variables.
One good thing about learning SQL language is, you learn one then you will able to work with the other SQL-based databases. So if you learn SQLite, you should be able to understand and write Firebird programs too. Each SQL-based database has their own small different commands. For example Firebird has
SKIP command but in SQLite you use
OFFSET. But most of their commands are the same.
I spend a quite time testing the performance of SQLite vs Firebird
embedded, I found SQLite run several times faster than Firebird embedded. I used the code in the link below, but added a loop for about 50 repetitions:
https://forum.lazarus.freepascal.org/index.php/topic,65185.msg496461.html#msg496461I searched to web to learn about why SQLite runs faster than Firebird. They said SQLite is optimized for single connection so it should be faster, but on multi connection environment Firebird will run better. That may be true but I haven't tested Firebird in any multi connection environment.
In SQLite website, they said SQLite is capable to handle multiple connections. But still, right tool for the job, if you want to write multi-client database programs you should consider the others that are specialized for the task first.
Firebird is okay. But the documentation is poor. I once had problem and decided to join in to their forum and asked questions. To my surprise, there was $500 fee. I understand they need to make money but that makes me think, if I need a multi-client database I will go directly to MySQL or PostgreSQL, which have better documentation and larger user base. I personally ever had bad experience installing MySQL on Windows 7, the problem solved by installing MariaDB. If you ever have problem installing MySQL, you can consider MariaDB. MariaDB is said can be used as a drop in replacement for MySQL.
Get this error........
Back to your original question. I would be interested to solve the mystery but I am currently busy with my design jobs, only have time maybe a week later.
If you want, you can send me the whole source code and the database. Access mdb file is known can be corrupted easily, so I need to inspect the file. And please don't just send me some lines of code. Bug can hide anywhere in the code. I need the whole compile-able source code.