2017-11-29 59 views
0

Paradoxデータベース用の古いODBCドライバ(Intersolv ODBC Paradoxドライバ)で問題が発生しました。私は、データベースのメインプログラムが実行されている間、Paradoxデータベースにデータを読み書きするアプリケーションを持っています。私はMSパラドックスドライバで問題が発生しています。今このドライバですべてうまく動作し、私は同時にデータベース上で作業することができます。私の問題は、Windows 10でのみ動作します.Windows 7では、データベースを開くときにエラーが発生します(SQLAllocHandleエラー)。メインプログラムを終了すると、ドライバが動作します。私はWindowsサービスでデータベースにアクセスしようとしましたが、Win7で動作しますが、メインプログラムが開いている間にデータにアクセスできます。ODBCドライバはWin10では正常に動作しますが、Win7では正常に動作しません。

私はAdminrightsでアプリケーションを開き、Psexec System acc。で起動しました。メインプログラムが開いているときは常に同じエラーです。誰もWin7とWin10の違いを知っていますか?どちらも64ビット。

答えて

0

元のDelphiアプリケーションも実行中にParadoxテーブルを開いてデータを読み込もうとすると、この問題は64ビットシステム上で発生していました。 Microsoft Paradoxドライバを使用すると、ODBC DataReaderを実行しようとすると「外部テーブルが予期しない形式です」というエラーが表示され、Intersolvドライバを使用した場合、試したときに見たのと同じSQLAllocHandleエラーが発生します接続を開きます。

私はこのスレッドのコメントに見られる:

Paradox Table - Oledb Exception: External table is not in the expected format

静的オブジェクトで接続を有する違いを作りました。私のアプリケーションでは、DB接続とクエリコードを静的なクラスに移動し、それが動作するようになりました。これは、あなたが言及したWindowsサービスがあなたのデータを読むことができた理由かもしれません。

Win7とWin10の違いはわかりませんが、PDOXUSRS.LCKファイルを開こうとするとスレッドのアクセス許可の問題と思われます。

希望すると、これが役立ちます。