2

Delphi XE Pro (Windows 7 32 ビット) でQuantum Gridデモの 1 つを開くと、プロジェクト内のすべてのテーブル (と思われる) に対して次のエラーが表示されます。

エラーメッセージ http://www.tranglos.com/img/qgerror.png

メッセージは次のとおりです。

Network initialization failed.
File or directory does not exist.
File: C:\PDOXUSRS.NET
Permission denied.
Directory: C:\.

c:\ への書き込み権限の問題は理解していますが、その結果、デモ プロジェクトをビルドして実行することはできますが、データが表示されず、デモが役に立たなくなります。では、21 世紀になって、どのようなデータベースが c:\ ディレクトリに設定を書き込むのでしょうか? :) (はい、私は Paradox データベースについてほとんど知りませんが、いずれも使用することはありません。グリッドの使用方法を学びたいだけです。)

BDEアドミニストレーターを使用して、Paradoxの「NET DIR」値をCドライブの書き込み権限を持つフォルダーに変更しようとしました。結果: データベース テーブルはデータを見つけることができません:

Path not found.
File: C:..\..\Data\GENRES.DB.

...そして、役に立たないほど切り捨てられたパスは、ファイルがどこにあると予想されるかを示しません。

デモがサンプル データを正しくロードできるように、問題を回避する方法はありますか?

4

3 に答える 3

1

BDEを正しくインストールしましたか?DBDEMOSファイルを使用する必要があります。BDE管理ユーティリティにそのようなエイリアスがありますか?Delphiデモの1つでそのデータベースを開くことができますか?

BDEは21世紀のデータベースではなく、20年前に開発され、最近アップグレードされたことはありません。これは時代遅れの技術ですが、既知のデータベースを備えたDelphiのすべてのリリースに付属しているため、新しいものをインストールする必要がないため、デモでよく使用されます。

とにかく、そのファイルはその構成ファイルではありません。これは、複数のユーザーがデータベースを同時に使用できるようにするための共有ロックファイルです。中央サーバーのないファイルベースのデータベースであるため、このような種類の共有ファイルを使用する必要があります。通常、その位置はネットワーク共有に変更されますが、歴史的な理由からデフォルトではC:\になります。

とにかく、それはBDEがまだprongディレクトリに書き込もうとしているだけではありません。C:\(特にログ)または他の読み取り専用の位置に書き込もうとしているアプリケーションがまだたくさんあります。

于 2011-11-06T17:47:52.090 に答える
0

このメッセージは、私たち自身のアプリケーションから知っています。これは、Windows Vista で導入されたセキュリティ対策に関係しています。重要なファイルを保護しようとしているオペレーティング システムは、それらへのアクセスを拒否します。セキュリティを損なうことなくこのメカニズムをバイパスする方法があります。アプリケーションを互換モードで実行してみてください。アプリケーションが互換モードで実行されている場合、システム フォルダーからの読み取り/書き込み操作は、C:\Users[現在のユーザー]\AppData\Local\VirtualStore にある「安全な」ディレクトリにリダイレクトされます。http://www.windowsecurity.com/articles/Protecting-System-Files-UAC-Virtualization-Part1.htmlの詳細情報。

于 2012-08-24T12:33:00.653 に答える
0

BDE Admin を使用して PDOXUSRS.NET の場所を変更することは役に立ちましたが、十分ではありませんでした。DevExpress は、データの場所に相対フォルダーを指定する際に正しいことを行いました。相対フォルダーは完全に問題ないように見えますが、何らかの理由で DB がそれを見つけることができません。

解決策: \Demos\ フォルダーの下で、文字列を含むすべての *.dfm ファイルを見つけます。

..\..\Data

その文字列を demos フォルダーへの絶対パスに置き換えます。これで、すべてのデモが正しく開きます。

于 2011-11-06T18:18:23.290 に答える