Delphi DBIV データベースからデータを読み込もうとしています。データベースにアクセスするたびに、Paradox.lck ファイルと Pdoxusrs.lck ファイルが作成されます。これを行うために TQuery オブジェクトのみを使用しています (他には何も使用していません)。これらのロック ファイルを作成せずに、Delphi DBIV データベースにアクセスできますか?
3 に答える
アプリケーションがPARADOX.LCKファイルとPDOXUSRS.LCKファイルを作成している場合は、どこかでPDOXUSRS.NETファイルも作成またはアクセスしています。
BDEは、単一の共通PDOXUSRS.NETファイルと、各共有ディレクトリのPARADOX.LCKおよびPDOXUSRS.LCKファイルを使用して、エンジンの分散インスタンス間の共有アクセスを調整します。
アプリケーションが他のアプリケーションとテーブルを共有しているかどうかを確認する必要があります。データが共有されている場合は、BDEがこれらのロックファイルを作成して使用できるようにする必要があります。
データの唯一のユーザーであることが確実な場合は、ロックファイルの作成を削除できます。ただし、ロックファイルだけが何か便利なことをするのを妨げているのでない限り、ロックファイルの作成をブロックする価値はほとんどありません。
レジストリエントリは、構成ファイルの場所をBDEに通知します。構成ファイルエディターはBDEに付属しています。BDEADMIN.EXEまたはBDECFG32.EXEを探します。構成エディターは、同じレジストリエントリを使用して、編集するファイルを決定します。
データの唯一のユーザーであるときにロックファイルを作成しないようにするには、次の手順に従います。
構成エディターを開きます。
構成に移動| ドライバー| ネイティブ| パラドックス、またはドライバー| PARADOX、およびNETDIRエントリに注意してください。
NETDIR値を空白に設定します。
構成に移動| システム| INITまたはSystemを選択し、LOCALSHAREをFalseに設定します。
編集内容を保存します。
手順2でメモしたパスをたどり、そこにあるPDOXUSRS.NETを削除します。
データディレクトリに残っているPARADOX.LCKまたはPDOXUSRS.LCKファイルをすべて削除します。
警告:ロックファイルの目的がわからないときにロックファイルをいじくり回すのは、アプリをブリックする良い方法です。
-Al。
ご回答ありがとうございます。私はあなたの両方の提案を調べます。
AI Breveleriへ:
ええ、私はあなたの言っていることを知っています、私はそれらをオフにするのは気が進まないです、しかしデータベースを使用する他のアプリは私のものよりはるかに重要です。理想的には、次のことを実行したいと思います。
私のアプリはデータの取得を開始します。他のアプリがデータベースを使用したい場合、私のアプリは停止します。
現時点では、正反対のことが起こっています。
シチュー。
なぜあなたはロックファイルが欲しくないのですか?実際に調べずに、これらのロックファイルには本当の目的があると思います
BDEを使用してからしばらく経ちましたが、SELECTクエリでキーワードを使用して、ロックが不要であることを示すことはできませんか?
たとえば、MS SQLでは、次の構文を使用できます。
SELECT * WITH(NOLOCK)
FROM SomeTable