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:

  1. 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;
  2. 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.;
  3. As another reference we used information found on the website of mr. Knabe (Paradox pdxeditor).
We noticed that the article from Kevin Mitchell contained the most information on the relation between the (memo)Blob field types and the position and length of the Blob's in the MB file.

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.

Back to top

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.

Our articles © Copyright 2024/2025 by J.W. Teunisse & J. van Dael.

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).

Back to top

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

Back to top