FoxPro 保留字问题


FoxPro reserved word issue?

我正在尝试读取一个名为SCHEDULE的foxpro表.dbf。数据通过数据连接器在PHP中读取,然后通过管道传输到我的网页。这一切都非常有效,只要我重命名 Schedule.dbf。除"计划"之外的任何名称似乎都有效。但是,当我运行名为 Schedule 的它时,我收到"SQL 错误:找不到 [Microsoft][ODBC dBase 驱动程序] 索引文件,SQL 状态 SQLExecDirect 中的 S0012"错误消息。我唯一的想法是,Schedule在某个地方是一个保留词,但我在任何列表中都找不到它。 我完全不知所措。重命名表实际上不是一个选项,因为它是我宁愿不修改的更大数据输入和管理系统的一部分。 有什么建议吗?

我不能说dBASE(如果它是Foxpro数据而不是dBASE,我会专门使用Microsoft的OleDb提供程序进行VFP)。 在 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 但不是其余的 (.只有当数据列的类型是备忘录或常规时,才会找到 FPT),那么它会阻塞打开文件。

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

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

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