2010-12-20 106 views
2

我一直负责从Btrieve(Pervasive)数据库导出一堆表格,但其中一个表格正在打架。我使用的是Pervasice控制中心,但是当我运行一个SELECT * FROM <troublesome table>我得到这个错误:Btrieve(文件)所有者问题

ODBC Error: SQLSTATE = S1000, Native error code = 0 
Unable to open table: <troublesome table>. 
The owner namme is invalid(Btrieve Error 51) 

我Google'd这一点,并发现有可能是一个“所有者”的DDF文件,但,如果我正确理解这一点,所有表都在该文件中。但是只有一个表导致这个错误,所以我不知道发生了什么。

有人请提供一些帮助。

回答

2

在Btrieve文件以及DDF上可以有一个所有者名称。在这种情况下,看起来Btrieve文件具有甚至需要读取文件的所有者名称(所有者名称可以允许只读访问,而不需要所有者名称或无权访问)。
根据您使用的PSQL版本,您可以在执行SELECT语句之前发出SET OWNER =命令。有关SET OWNER的完整文档,请查看http://docs.pervasive.com/products/database/psqlv11/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sqlref/syntaxref.3.76.html。 至于确定所有者的名字,你必须问问程序的开发者。没有默认所有者名称,也没有主人所有者名称。

+0

Thanks.I自从我问这个问题以来,我已经想了很多。问题是我可怜的客户正在与开发人员进行法律程序,我怀疑他锁定数据文件是某种童稚的报复行为。有没有实用的东西来提取所有者的名字?我看到一家公司使用“经典软件”声称他们可以做到这一点,所以我认为这一定是可能的。 – 2010-12-20 17:22:54

+0

此外,使用数据库的应用程序似乎开发了一种名为“魔术运行时”的东西,似乎数据完全可以被该程序访问。这意味着“所有者名称”必须在我猜测的某个时刻发送。有人对这个有经验么?有什么建议么?似乎我越来越变成黑客在这里...:O/ – 2010-12-20 17:24:49

+0

没有实用程序来提取所有者的名称。试图获得黑客的所有者名称正在进入一个灰色地带。你是对的,魔术应用程序知道所有者的名称并通过它。 MKDE追踪机制阻止所有者名称的追踪。它显示为“未显示”的痕迹。真的,我可以建议的最好的事情是让你的客户解决法律问题并获得所有者的姓名。 我见过其他用户运行阻塞访问的相同方法。你可以做的事情不多。 – mirtheil 2010-12-20 20:12:43