2010-12-20 4 views
2

Ich hatte den Auftrag, eine Reihe von Tabellen aus einer Btrieve (Pervasive) -Datenbank zu exportieren, aber eine der Tabellen kämpft. Ich bin mit dem Pervasice Control Center, aber wenn ich einen SELECT * FROM <troublesome table> betreibe ich diesen Fehler:Btrieve (Datei) Besitzer Probleme

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

ich dies habe Google'd und fand heraus, dass es ein „Besitzer“ zu einer DDF-Datei aber, Wenn ich das richtig verstehe, sind alle Tabellen in dieser Datei. Aber es gibt nur einen Tisch, der diesen Fehler verursacht, also habe ich keine Ahnung, was passiert.

Könnte jemand bitte etwas Hilfe anbieten.

Antwort

2

Es kann sowohl in einer Btrieve-Datei als auch in der DDF ein Besitzername vorhanden sein. In diesem Fall scheint die Btrieve-Datei einen Besitzernamen zu haben, der zum Lesen der Datei erforderlich ist (ein Besitzername kann Lesezugriff ohne den Besitzernamen oder keinen Zugriff erlauben).
Je nach der von Ihnen verwendeten PSQL-Version können Sie vor dem Ausführen der SELECT-Anweisung den Befehl SET OWNER = ausgeben. Eine vollständige Dokumentation zu SET OWNER finden Sie unter http://docs.pervasive.com/products/database/psqlv11/wwhelp/wwhimpl/js/html/wwhelp.htm#href=sqlref/syntaxref.3.76.html. Soweit den Namen des Besitzers zu bestimmen, müssen Sie den Entwickler des Programms fragen. Es gibt keinen Standardbesitzernamen und keinen Hauptbesitzernamen.

+0

Danke.Ich hatte viel herausgefunden, seit ich die Frage gestellt habe. Das Problem ist, dass mein armer Kunde in einem Rechtsstreit mit dem Entwickler ist und ich vermute, dass das Sperren der Datendatei eine Art von kindischem Akt der Rache oder etwas ist. Gibt es kein Dienstprogramm oder etwas, um einen Besitzernamen zu extrahieren? Ich sah eine Firma, die "klassische Software" genannt wurde, behauptet, dass sie es schaffen kann, also muss es möglich sein, denke ich. –

+0

Auch die Anwendung, die die DB verwendet, scheint in etwas entwickelt zu werden, das "Magic Runtime" genannt wird und es scheint, dass die Daten für dieses Programm vollständig zugänglich sind. Das bedeutet, dass der "Besitzername" irgendwann gesendet werden muss, denke ich. Hat jemand damit Erfahrung? Irgendwelche Vorschläge? Scheint, dass ich hier immer mehr zum Hacker werde ...: O/ –

+0

Es gibt kein Dienstprogramm, um den Besitzernamen zu extrahieren. Der Versuch, den Namen des Besitzers zu hacken, gerät in eine graue Zone. Du hast Recht, dass die Magic-App den Namen des Besitzers kennt und ihn weitergibt. Der MKDE-Verfolgungsmechanismus blockiert die Verfolgung von Besitzernamen. Es zeigt sich als "Nicht gezeigt" in einer Spur. Wirklich die beste Sache, die ich vorschlagen kann, ist für Ihren Kunden, um das gesetzliche Problem auszuarbeiten und den Eigentümernamen zu erhalten. Ich habe gesehen, dass andere Benutzer die gleiche Methode zum Blockieren des Zugriffs ausführen. Es gibt einfach nicht viel, was du tun kannst. – mirtheil