我正在与一个拥有现有系统的客户合作,该系统建立在一个显然是Paradox数据库的基础之上。我有一个包含.DB,.MB和.PX文件的zip文件形式的数据库,每个表一个。
我需要获取(部分)这些数据并将其导入到使用MySQL的Web应用程序中。有没有人让我提取这些数据,这不涉及安装Paradox?
如果没有,Paradox是否以某种可读格式导出?无论是SQL还是可以轻松解析的东西?我的客户负责这个系统的人是一名志愿者(他们是一个非盈利组织),所以我想找一个解决方案给他 - 因为上次我要求提供数据,我得到了这个,显然不好。
答案 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)
您有几个选择:
答案 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"