0

いくつかの SqlAnywhere 5 .db ファイルからデータを抽出する必要があります。このファイルは、別のシステムが実行中のデータベースから定期的に抽出して保存します。

マシンに sqlAnywhere 16 スイートをインストールしました。

ここに書かれているように、プレーンado.Netを使用してデータベースに接続しようとしました: http://www.sybase.com/detail?id=1054947

SAConnection myConnection = new SAConnection(@"UID=guest;PWD=guest;DBF=D:\test\rotomat\3991194.db"); 
//EXPECTION: Unable to start specified database: 'D:\test\rotomat\3991194.db' was created by a different version of the software
myConnection.Open();

しかし、コメントとして表示されるエラーが発生しました。

そのため、 dbunload ユーティリティを使用して db を新しいバージョンに変換しようとしましたdbunload - パーミッションの問題が、パーミッションに関して表示されるエラーが発生しました。それをグーグルで検索すると、dbを抽出できるようにするには、DBA資格情報(私は持っていません)が必要なようです。また、-t オプションを使用して「ピース」テーブルのみを試しましたが、結果はありませんでした。

他のこと(odbc、サードパーティのドライバー)も試しましたが、結果はありません。

私が求めているのは、これらの .db ファイルからプログラムでデータを抽出する方法はありますか? Entity Framework は大きなプラスになります。

ありがとう

4

1 に答える 1

0

いいえ。v10.0 より新しいサーバーで古いデータベースをリロードせずに実行することはできません。また、そのデータベースで DBA 権限を持つユーザーとして接続できなければ、リロードを実行できません。SQL Anywhere バージョン 5 のコピーを持っている場合はそれを使用できますが、データベース ファイル自体を 16 進数で編集し、何がデータで何がそうでないかを推測する以外に、データを取得する方法はありません。

免責事項: 私は SAP で SQL Anywhere エンジニアリングの仕事をしています。

于 2014-05-29T23:37:34.787 に答える