阅读Paradox数据库文件

10

我正在与一个客户合作,他们有一个现有的系统,建立在一种名为Paradox数据库的技术上。我已经拿到了这个数据库,它以一个zip文件的形式存在,里面包含了每个表格的.D檔案、.MB檔案和.PX檔案。

我需要将其中的一些数据导入到一个使用MySQL的Web应用程序中。有没有人知道如何提取这些数据,而不需要安装Paradox呢?

如果不行,Paradox是否支持导出到可读格式?例如SQL或其他易于解析的格式?我的客户负责此系统的人员是志愿者(他们是非营利组织),因此我希望向他提供解决方案,因为上次我要求数据时,得到的结果显然无法使用。


1
那些拥有数据的人为我编写了一个转换程序。感谢你们的帮助。 - MattBelanger
7个回答

4

太好了!Pxtools网站有使用“apt-get”安装的说明,但我没有找到添加存储库的说明。有人知道如何做吗? - Italo Borssatto

2

Paradox for DOS和Paradox for Windows平台都可以将数据表以分隔文本、定长文本和Lotus 1-2-3格式导出。老一些的Paradox for DOS还可以写入Lotus Symphony,而稍微陈旧一点的Paradox for Windows可以输出Excel 5格式。

然而,需要有人逐个表进行导出,或编写脚本来实现批量导出。当然,编写脚本需要安装Paradox。

-Al.


1
这就是我们最终所做的。 - MattBelanger

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。

Paradox在XP上运行良好。自XP发布以来,我们一直在使用它,并没有出现任何问题。 - user195488
有趣的是,我尝试在所有的XP电脑上运行Paradox主应用程序时都无法正确渲染用户界面。大多数按钮没有标签等。 - Michael Steele
(以及可能在十年后出现的其他人):这是“兼容模式”的工作。安装Paradox,创建可执行文件的快捷方式,并右键单击快捷方式图标以打开其“属性”菜单。 - A. I. Breveleri

1

1
我一直在从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-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替换所有“"”为“'”,任何记录中的“"”都会弄乱东西

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

  • 设置目标MySQL数据库模式,其中我们希望blob进入文本字段

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

    LOAD DATA LOCAL INFILE 'C:/data.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (column1, column2)


0

使用 MS Access 2007,您可以使用免费的 Paradox 数据库编辑器程序(Google 搜索)附带的 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"

1
我实际上发现 MS Access 可以直接打开 Paradox DB 文件(我不需要安装其他任何东西 - 尽管这可能是我的组织的标准操作环境)。 - Li-aung Yip

0

Paradox是Borland Database Engine的本地格式,该引擎包含在各种Delphi编程产品中。最近所有权已经至少更改了一次,但曾经有免费的“Express”版本的Delphi可用,可以让您编写一个简单的程序来导出这些内容。如果不再提供免费版本,则最低可用的SKU应包括BDE功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接