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

我需要获取(一些)这些数据并将其导入到使用 MySQL 的 Web 应用程序中。有人有办法让我提取这些数据,而不需要安装 Paradox 吗?

如果不是,Paradox 是否以某种可读格式导出?是作为 SQL 还是可以很容易解析的东西?我的客户负责这个系统的人是一名志愿者(他们是非营利组织),所以我想向他提出一个解决方案 - 因为上次我索要数据时,我得到了这个,显然不行。

有帮助吗?

解决方案

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

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

-Al。

其他提示

维基百科关于悖论的文章 列出了另外两个可能有趣的东西,都在 GPL 许可下:

如果您有 Delphi 并且想自己编写一个转换器(这需要 BDE 才能工作),您可以看一下 本文 或在源代码 本网站上的 ConvertCodeLib. 。两者都使用 TClientDataset,它可以写入 CDS(二进制格式)或 XML 文件。

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

您有几个选择:

  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。

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

这是我将 Paradox 数据导入 MySQL 的冗长过程,希望对大家有所帮助!

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

  • 在 Paradox 中打开 .dbf 文件。在 dbfviewer 中打开之前,可能需要将双精度格式转换为长整数或数字。双格式似乎不起作用。保存存档。

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

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

  • 在 Excel 中,通过 CTRL-F 将所有 " 替换为 ',替换...记录中的任何“都会弄乱事情

  • 在Excel Press Alt -F11中以打开宏插入 - >模块创建此宏以保存带有双引号的CSV文件:

    子 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
    
  • 然后运行->运行宏

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

  • 在 MySQL 命令行中,以下是如何进行导入的示例:

    加载数据本地填充'c:/data.csv'到由' r n'终止的线终止的table table_name字段,

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

使用MS Access 2007,您可以使用免费Paradox数据库编辑器程序(谷歌它)中包含的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"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top