Exporting Paradox database (Memo)BLOBs
Authors: Jan Willem Teunisse & Jeroen van Dael, 19 February 2025
1. Introduction
My co-author, Jeroen, asked a couple of months ago in November 2024 for my assistance in his efforts to export data with so called memoBlob fields in a
Paradox database using a DB and MB file combination. His goal was to develop a C# viewer to show the genealogy contents of a Paradox database
files to his relatives.
In his search for more information on how to find ways to program this viewer, he found a CodeProject publication by mr. Petr Bríza which offers an
excellent opportunity to read and export Paradox database files with C# coded applications.
The C# classes Petr Bríza designed, works really great as long as the Paradox database you're using doesn't have any (memo)Blob or Graphic fields
stored in MB files.
That part of his code was just not finished. In my efforts to support Jeroen I found on GitHub two forks of Petr's code, with one comment to cover
this subject but both forks did not offer in our opinion a real working solution.
In addition to this, the internet offers very few sites with (free or open source) solutions to process such MB files correctly.
In this short article and annexes I describe my efforts to find a way to support Jeroen. On my website you can also download a PDF article containing a lot of information (see the References) and a prototype code written in Winbatch. I use Winbatch as a sort Swiss Army knife to prototype or to write small solutions.
In the past there were some efforts by others to re-engineer the Paradox database structures as the original developers didn't describe these
Paradox structures in detail.
A lot has to be done by re-engineering and trial-and-error.
Reference material for further reading:
- You can start with an article written by mr. Kevin Mitchell, called Paradox 4.x File Formats, Revision 1, May 11, 1996, a copy you can find f.i. on Github;
- An other document 'PxFormat.txt', compiled by Randy Beck (Paradox format). The 'PxFormat' version we used was from Dec 7, 2006 and contained also an example program written in Pascal.;
- As another reference we used information found on the website of mr. Knabe (Paradox pdxeditor).
2. Our Experiences
Our experiences we documented in two PDF articles:
The first PDF, written by myself, describes more in a general the way or algorithm one can use to retrieve the (memo)Blob information and what
I (Jan Willem) used for the Winbatch prototype. These two files can also found on my GitHub repository
Migrating-a-DB-MB-Paradox-database
The second PDF reports the way Jeroen used in modifying the C# code of Petr Bríza.
You can download both PDF articles and the Winbatch/C# codes by using the following download link
migratingParadox.zip.
We repeat here the original important reminder of mr. Mitchell :
You use the information contained in this document at your own risk.
We cannot be held responsible for any damages that result from your use of this information.
In other words make a backup copy of your original Paradox files, before you using or modify our code and data.
3. Summary
The main goal for this article is to share our experiences with these Paradox DP/MB databases and also to document our efforts for future usage. And hopefully it will be useful for other users.
4. Licenses and copyright
Licenses of the used software components.
- the C# code of Petr Bríza and alterations made by us under the CodeProject Open-source license (CPOL);
- other like the Winbatch code:
Open-source license.
.
This piece of documentation and software as presented in this article is provided 'as-is', without any express or implied warranty. In no event will the author(s) be held liable for any damages arising from the use of this article or software (code).
5. Comments or advice
Your comments or advice for improvement are most welcome, you can send them to the following email-address
pr@jwteunisse.nl