我的任务是将FoxPro数据库转换为MySQL,我需要知道如何将FoxPro数据库的结构/索引导出到Excel。这可以从FoxPro中导出那种类型的信息吗?
我知道有些工具可以为您进行此类转换,但由于我们的预算而被拒绝。我们希望创建一个专门的转换脚本,它将自动转换所有容器和dbfs。
提前谢谢你。
答案 0 :(得分:1)
您可以从FoxPro执行此操作,并且无需将信息导出到Excel,Foxpro可以在MySQL中重新创建数据库/表/索引,并上传记录。
我开发了一个工具,可以使用FoxPro命令将任何FoxPro表上传到MySQL。
检查tools文件夹中的gendbc.prg并根据您的需要进行调整。
您必须为MySQL进行一些字段类型转换。此外,如果您要上传数据,请注意日期/日期时间:
将空的VFP日期字段替换为' 0000-00-00'在MySQL和' 0000-00-00 00:00:00'对于空日期时间。
一些有用的命令是AFIELDS,ATAGINFO
答案 1 :(得分:1)
如果查看Leafe.com的下载区域,可以使用各种免费工具将数据从VFP迁移到MySQL。
有一个数据上传程序,以及一些工具,用于从Visual FoxPro中当前选定的别名创建MySQL CREATE TABLE脚本。
或者,如果您想手动追踪Excel路线,那么......
如果您有一个具有以下结构的表MYTABLE.DBF:
Structure for table: C:\TEMP\MYTABLE.DBF
Number of data records: 0
Date of last update: 01/05/2014
Code Page: 1252
Field Field Name Type Width Dec Index Collate Nulls Next Step
1 FIRSTNAME Character 20 No
2 LASTNAME Character 20 No
3 AGE Numeric 3 No
4 ID Integer (AutoInc) 4 Asc Machine No 1 1
** Total ** 48
然后您可以通过VFP命令窗口将结构转储到另一个DBF,如下所示:
cd \temp
use mytable
copy structure extended to mytablestruct.dbf
然后,您可以打开包含结构信息的表并将其转储为XLS格式:
use mytablestruct
copy to struct.xls type xl5
在Excel中看起来像:
关于索引,你必须编写一个像这样的小例程:
Create Cursor indexinfo (idxname C(254), idxtype c(254), idxkey c(254), ;
idxfilter c(254), idxorder c(254), idxcoll c(254))
Use mytable In 0
Select mytable
lnTags = ATagInfo(laTemp)
For i = 1 to lnTags
Insert into indexinfo values (laTemp[i, 1], laTemp[i, 2], laTemp[i, 3], laTemp[i, 4], laTemp[i, 5], laTemp[i, 6])
EndFor
Select indexinfo
Copy To indexinfo.xls type xl5
打开结果indexinfo.xls:
答案 2 :(得分:0)
所有优点......除了使用VFP,您还可以使用"工具" - > "奇才" - > "升迁&#34 ;.您将需要建立与数据库的连接,它将引导您完成大部分工作。
您可以在向导过程中升迁整个数据库,或只扩展单个表。