我设法将.dbc文件中的一个表链接到ms access。
问题是table1.dbf有点锁定,我无法修改它,所以我复制了整个数据并为它创建了一个表。现在,我可以自由地更新桌子了。在更新了一些行之后,我将其导出到一个dbf文件中,并替换了原来的“table1.dbf”。问题是,当打开我的程序时,它显示了以下内容:
Table 'table1.dbf' is not marked as belonging to the 'dbases' database.
Would you like to create the back link to mark it?
我知道您必须提交.dbf文件才能使用它。有没有一种不使用foxpro来提交新的“table1.dbf”的方法?我成功地使用了visual studio,但找不到关于如何实现它的教程。
发布于 2014-03-02 14:57:07
您不需要在这里“提交”表--这与FoxPro的缓冲机制有关,不需要对这里的错误负责。
您所遇到的是FoxPro入侵较旧的xBase标准以允许“数据库”的一种奇怪方式。DBC本身是一个表,它列出了一组其他表的名称和字段,以及一些特定于DBC的项,比如本地视图和诸如此类的东西。为了添加冗余检查,对每个表的头进行额外编辑,以包含返回到DBC的相对路径。
如果缺少该路径,FoxPro将准确地显示您注意到的消息。单击“是”可以让FoxPro修改您的表,这样您就不再有问题了。
顺便说一句,如果您没有Visual,并且您的应用程序不包含更新能力,那么您有两个选项。
1:对于非常简单的编辑,您只需在下降文本编辑器中打开dbf (我已经用NotePad++完成了)并手动进行更正。只要您生成的行和字段仍然是预期的宽度,FoxPro甚至不会关心您所做的更改。当然,这是非常容易发生错误的,所以在尝试备份之前,不要尝试对任何非平凡的内容进行细化。
2:安装Visual的Microsoft提供程序并让提供者管理您的FoxPro数据。与其依赖即将被删除的Access或Excel功能来编辑与FoxPro兼容的DBF,您还可以直接连接并自己执行大部分DDL和DML任务。
发布于 2014-02-27 07:57:22
首先,您能否确认是否使用Visual来处理表和数据库容器?
根据表的结构,您显然陷入了不太好的状态,但不是完全丢失状态。空闲表(不是数据库容器的一部分- .DBC)只允许列名长达10个字符。如果是.DBC的一部分,那么列名可能会更长。无论如何,当表最初是.dbc的一部分时,单个文件头将被标记为.dbc引用,以便在打开表时自动打开它。
听起来是这样的,当您打开数据库容器并尝试打开文件时,它没有找到标题链接,而是询问如何解决它。反向链接的唯一方法是独占打开文件,并显式地响应是,添加反向链接。
就从Access引用表而言,在生成连接字符串时,它应该指向表所在的路径,而不是特定的表。如果您使用的是数据库容器,则当通过数据提供程序访问该文件时,它应自动打开。您还可以进行连接,但是路径应该包括数据库容器的.DBC引用。
希望这能帮上忙,如果你有任何后续问题,我会留心的。
https://stackoverflow.com/questions/22060785
复制相似问题