FoxPro保留字问题?

时间:2012-04-25 12:57:58

标签: php html foxpro

我正在尝试阅读名为SCHEDULE.dbf的foxpro表。数据通过数据连接器在PHP中读取,然后通过管道传输到我的网页。如果我重命名Schedule.dbf,这一切都很有效。除了Schedule之外的任何名称似乎都有效。然而,当我运行名为Schedule时,我得到“SQL错误:[Microsoft] [ODBC dBase Driver]索引文件未找到。,SQLExecDirect中的SQL状态S0012”错误消息。我唯一的想法是,Schedule在某个地方是一个保留字,但我无法在任何列表中找到它。   我完全失去了。重命名表并不是一个选项,因为它是更大的数据输入和管理系统的一部分,我宁愿不修改。   有什么建议吗?

2 个答案:

答案 0 :(得分:0)

错误是“找不到索引文件” - 匹配的.cdx索引文件与.dbf文件不在同一目录中。确保它位于同一目录中,或者您可以使用FoxPro从表中删除索引。

答案 1 :(得分:0)

我不能说dBASE(如果是Foxpro数据而不是dB​​ASE,我会专门为VFP使用Microsoft的OleDb提供程序)。在Foxpro中,系统使用配对(甚至三重)文件。需要重命名所有相应的文件名,例如

SCHEDULE.DBF (main data)
SCHEDULE.CDX (compound index file for all indexes for given file)
SCHEDULE.FPT (separate file if any memo/general data columns in the file)

如果您尝试重命名.DBF而不是其余部分(仅在数据列为memo或general类型时才会找到.FPT),那么它将阻止打开文件。

此外。如果该表是数据库容器的一部分(通过VFP),并且您尝试打开它,则该文件具有额外的标头信息以指向它所绑定的数据库。如果它在数据库中找不到它,那也可能会给你一个错误的错误。

VFP中的数据库容器的后缀值为.DBC,.DCT和.DCX。