阅读Paradox数据库文件

时间:2009-10-24 04:13:16

标签: mysql paradox data-conversion

我正在与一个拥有现有系统的客户合作,该系统建立在一个显然是Paradox数据库的基础之上。我有一个包含.DB,.MB和.PX文件的zip文件形式的数据库,每个表一个。

我需要获取(部分)这些数据并将其导入到使用MySQL的Web应用程序中。有没有人让我提取这些数据,这不涉及安装Paradox?

如果没有,Paradox是否以某种可读格式导出?无论是SQL还是可以轻松解析的东西?我的客户负责这个系统的人是一名志愿者(他们是一个非盈利组织),所以我想找一个解决方案给他 - 因为上次我要求提供数据,我得到了这个,显然不好。

7 个答案:

答案 0 :(得分:3)

wikipedia article about Paradox在GPL许可下列出了另外两件可能是令人反感的内容:

如果您有Delphi并想自己编写转换器(需要BDE才能工作),您可以查看this article或源代码ConvertCodeLib on this web site。两者都使用TClientDataset,它可以编写CDS(二进制格式)或XML文件。

答案 1 :(得分:2)

DOS平台和Windows平台Paradox都将以分隔文本,固定长度文本和Lotus 1-2-3格式导出数据表。旧的Paradox for DOS也写了Lotus Symphony,而稍微不那么古老的Paradox for Windows就可以使用Excel 5。

但是,有人必须坐下来逐个导出表格,或者写一个脚本来做。当然,您需要安装Paradox来编写脚本。

-Al。

答案 2 :(得分:1)

MS有instructions使用MS Jet驱动程序从Paradox 3-5生成的文件中读取数据。这可以充当(至少)一个ODBC驱动程序,因此您可以使用它从几乎任何知道如何使用ODBC的文件中读取Paradox文件。

答案 3 :(得分:1)

您有几个选择:

  1. 获取原始Paradox软件,并使用它将数据库导出为CSV格式。不幸的是,Borland不再销售它,最新版本在Windows XP或更高版本上运行不佳。
  2. 使用Paradox或dBase / xBase ODBC驱动程序访问数据库。 Paradox和xBase非常相似,因此您可以使用适用于其中任何一个的驱动程序来提取数据。您可以在firebirdsql.org上的某处获得Paradox ODBC驱动程序。
  3. 使用Borland Delphi编写一个程序,用于导出所需的数据。正如其他人提到的那样,您可以获得一个名为Turbo Explorer的免费版本。您还必须单独安装BDE,因为它没有Turbo Explorer。

答案 4 :(得分:1)

我一直致力于从Paradox到MySQL的巨大数据迁移。我的一般方法是从Paradox导出CSV文件,然后从MySQL命令行导入CSV文件。但是,当Paradox中有M(备忘录)字段时,此系统会崩溃,因为该数据不会按预期被拉入CSV文件。

这是我将Paradox数据导入MySQL的漫长过程,希望它可以帮助某人!

  • 在Paradox中打开Paradox文件,导出到dbase(.dbf)文件。它的作用是将备忘录数据导出为dbase的blob格式。

  • 在Paradox中打开.dbf文件。在dbfviewer中打开之前,可能需要将double格式转换为长整数或数字。双重格式似乎无法正常工作。保存文件。

  • 使用此程序打开dbase文件,然后导出到Excel:http://dbfviewer.org/ 出口 - > XLS-File ...这将在Excel中打开它

  • 现在我们需要创建一个宏,因为Excel没有任何本机方法用引号或其他任何东西包围CSV字段。我已粘贴下面的宏,但这里是我找到的参考站点。一个站点有更好的说明但文本损坏: http://www.mrexcel.com/forum/showthread.php?320531-export-as-csv-file-enclosed-quotes http://www.markinns.com/articles/full/export_excel_csvs_with_double_quotes/

  • 在Excel中用CTRL-F替换所有“with”,在记录中替换“any”会弄乱东西

  • 在Excel中按ALT - F11打开宏 插入 - >模 创建此宏以保存用双引号括起的CSV文件:

    Sub CSVFile()

    Dim SrcRg As Range
    Dim CurrRow As Range
    Dim CurrCell As Range
    Dim CurrTextStr As String
    Dim ListSep As String
    Dim FName As Variant
    FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")
    
    If FName <> False Then
    ListSep = Application.International(xlListSeparator)
    If Selection.Cells.Count > 1 Then
    Set SrcRg = Selection
    Else
    Set SrcRg = ActiveSheet.UsedRange
    End If
    Open FName For Output As #1
    For Each CurrRow In SrcRg.Rows
    CurrTextStr = ""
    For Each CurrCell In CurrRow.Cells
    CurrTextStr = CurrTextStr & """" & CurrCell.Value & """" & ListSep
    Next
    While Right(CurrTextStr, 1) = ListSep
    CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
    Wend
    Print #1, CurrTextStr
    Next
    Close #1
    End If
    End Sub
    
  • 然后运行 ​​- &gt;运行宏

  • 使用我们希望blob去的文本字段设置目标MySQL数据库架构

  • 在MySQL命令行中,这是一个如何进行导入的示例:

    LOAD DATA LOCAL INFILE'C:/data.csv' INTO TABLE table_name 字段被','终止 包含在''' 由'\ r \ n'终止的线路 (column1,column2)

答案 5 :(得分:0)

Paradox是Borland数据库引擎的原生格式,它包含在各种Delphi编程产品中。所有权至少在最近一次易手,但有一次,有免费的“Express”版本的Delphi可以让你编写一个简单的程序来导出这些东西。如果免费版本不再可用,则可用的最低SKU应包括BDE功能。

答案 6 :(得分:0)

使用MS Access 2007,您可以使用免费Paradox数据库编辑器程序(google it)中包含的BDE发行版导入Paradox 7及更低版本。使用如下连接:

DoCmd.TransferDatabase acImport, "ODBC Database", _
    "Paradox 3.X;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=C:\apache\Archive;TABLE=Messages#db", _
    acReport, DailyArchiveName, "MyDatabase"