Thursday, May 14, 2009


Well I have finished my session on converting BDE to DBX.

My slides and code are available in SVN at my Google Code Site

The BDEtoDBXDataPump was a quick and dirty application but it should work, let
me know if you have a problem and I will update the code in SVN.

The ComponentConverter will convert TQuery and TTable to TdbxQuery components.
It will also convert TDatabase to TSqlConnection, and few other things to help in the conversion, such as removing the BDE Units and adding in the DBX units.


  1. Hi Rob,

    You did say to let you know about any problems.

    I thought I'd try out your BDEtoDBXDataPump but DBX had an issue with Currency fields. It appears that TDBXDataExpressProviderContext.GetPlatformTypeName raises an 'Unknown Data Type' exception for Currency fields.

    Also, you might want to check:

    TdmConvert.ConvertTables does not respect the MetaDataOnly parameter.

    TdmConvert.ConvertTableData runs ApplyUpdates for every row after the first 100 as the Rows counter isn't reset.

    Regards, Paul.

  2. Thanks Paul!

    The first problem requires a bit more information, What is your destination database driver, as I can't seem to recreate it.

    A quick fix would be to change the FieldtypeMap const in uConvertDataMoudle.pas to map currency to another type such as double.

    The others, are very easy I have fixed them and commited them to SVN.

  3. Actually since Currency is managed internally as a BCD Type I am changing the mapping to BCD, since I can't test it. Let me know if it works or does not.