本来は dBASE も Paradox も SQL は使えません。
[BDE (dBASE / Paradox) の SQL]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=878
[ "dBASE" は Access みたいなもの。]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1221
[ "Paradox" は Access みたいなもの。]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1220
dBASE や Paradox の DB ファイルに対して SQL を使えるようにしたのが BDE です。Microsoft の ODBC ドライバも同様です。つまり、両者の SQL は独自に実装されており、完全に互換性がある訳ではありません。BDE を dBGo に置き換えただけでは正しく動作しない可能性があります。
# Windows 版の dBASE や Paradox はエンジンに BDE を使っているので "SQL が使える" と言えるかもしれませんが。
[Access および Jet で dBASE データを使用する方法]
http://support.microsoft.com/kb/230125/ja
・dBASE ISAM では、以前のバージョンの Microsoft Access と同様、8.3 名前付け規則のみがサポートされます。
[Access 2000 または Jet で Paradox データを使用する方法]
http://support.microsoft.com/kb/230126/ja
・使用しているコンピュータに Jet 4.0 SP5 と BDE のどちらもインストールされていない場合、以下の問題が発生します。
- 旧バージョンの Access と異なり、Paradox インデックスが確認、使用、管理されません。
- APPEND、UPDATE、DELETE コマンドをサポートしていません。
- "INSERT INTO … SELECT … FROM …" 構文を使用した場合の Paradox テーブルへの一括データの書き込みは引き続きサポートしますが、インデックスは管理されません。
・使用しているコンピュータに BDE がインストールされていない場合、以下の問題が発生します。
- Paradox IISAM が Paradox ファイルを開く際 (リンクされた Paradox テーブルを開く場合や DAO 経由で Paradox テーブルを開く場合を含む)、排他的ロックがかかります。
- マルチユーザー環境による使用をサポートしていません。
- ODBC 接続による、同一コンピュータまたは複数コンピュータから同一テーブルへの同時接続をサポートしていません。
・Paradox IISAM では、旧バージョンの Access と同様、「8.3 名前付け規則」をサポートしています。
・Paradox をサポートするバージョンの BDE をコンピュータにインストールしているかどうかにかかわらず、Microsoft Paradox IISAM では Paradox 拡張子をサポートしていません。
[dBase ドライバが MDAC 2.1 以降で DBF ファイルを更新できない]
http://support.microsoft.com/kb/238431/ja
MDAC 2.1 以降に付属する Jet 4.0 は dBASE/ Paradox ファイルの読み取りは可能。読み書きには BDE が必要です。Jet 4.0 の更新プログラムをインストールすれば BDE なしで dBASE/ Paradox ファイルの読み書きが可能になります。
[Microsoft Jet 4.0 データベース エンジン用の最新の service pack の入手方法]
http://support.microsoft.com/kb/239114/ja
Service Pack 5 以降であれば、 BDE なしで dBASE/ Paradox ファイルの読み書きが可能です。
[アクセス Borland データベース エンジン (BDE) を読み込むかどうかを制御する方法]
http://support.microsoft.com/kb/248841/ja
dBASE/ Paradox ファイルへのアクセスに間接的に BDE を使うか、常に Microsoft 提供のものを使うか制御する方法が書かれています。具体的には HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Xbase に BDE というキーを DWORD 値で作り、値を指定します。
- 0 – BDE がインストールされている場合、BDE を使用します。インストールされていない場合は、Microsoft ISAM を使用します。
- 1 – 常に BDE を使用します。BDE がインストールされていない場合は、エラーとなります。
- 2 – 常に Microsoft ISAM を使用します。
[BDE を使用しない Paradox と dBase の ISAM ドライバ]
http://support.microsoft.com/kb/263561/ja
マイクロソフトは、Microsoft Jet 4.0 用の新しい Paradox および dBASE ISAM ドライバを開発しました。このドライバを使用すると、Borland Database Engine (BDE) をインストールしなくても、Paradox や dBASE のファイルに対して完全な読み取りと書き込みのアクセスが可能となります。Microsoft Data Access Component (MDAC) 2.1 以降に付属する現在の Jet 4.0 ベースの Paradox および dBase ISAM ドライバでは、BDE をインストールしない限り、Paradox や dBASE のファイルに対して読み取り専用のアクセスしかできません。これらの ISAM ドライバの Jet 3.51 バージョンでは、BDE を使用しなくてもこの機能が提供されます。
何を言っているのかサッパリでしょうが、要約すると以下のようになります。
・Jet 3.51 付属のドライバでは BDE なしで dBASE/ Paradox ファイルを読み書きできる。
・MDAC 2.1 以降に付属の Jet 4.0 (に付属の) ドライバでは BDE なしだと dBASE/ Paradox ファイルは読み取り専用。
・Jet 4.0 更新プログラム (Service Pack 5 以降) 付属のドライバでは BDE なしで dBASE/ Paradox ファイルを読み書きできる。
[Access 2002 と Jet における Paradox データの使用]
http://support.microsoft.com/kb/286246/ja
[MDAC のバージョンを確認する方法]
http://support.microsoft.com/kb/301202/ja
[Access データベースでの作業時に使用すべきでない特殊文字]
http://support.microsoft.com/kb/826763/ja
[dBASE データベース ドライバーを初期化する]
http://msdn.microsoft.com/ja-jp/library/office/ff845606.aspx
[Paradox データベース ドライバーを初期化する]
http://msdn.microsoft.com/ja-jp/library/office/ff196480.aspx
[CREATE INDEX for Paradox (Microsoft)]
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms711839%28v=vs.85%29.aspx
・テーブルにレコードを追加する前にプライマリインデックスを作成しなくてはならない。
・プライマリインデックスはカラムの先頭から連続した n カラムで定義しなくてはならない。
・プライマリインデックスはテーブルに一つでなくてはならない。
・プライマリインデックスがテーブルに存在しない場合には Paradox ODBC ドライバは空のテーブルでない限りテーブルを更新できない。
・プライマリインデックスの名前はテーブル名 (テーブルファイル名の拡張子を除いた部分) と同じでなくてはならない。
※ BDE にはなかった制限があるのでご注意下さい。
See Also:
[ADO (dbGo) で ODBC ドライバを使って dBASE / Paradox ファイルを開く]
http://ht-deko.minim.ne.jp/tech075.html
[568_ADO による Paradox データベース接続 (Mr.XRAY)]
http://mrxray.on.coocan.jp/Delphi/plSamples/568_ADO_Paradox.htm
[569_ADO による dBASE データベース接続 (Mr.XRAY)]
http://mrxray.on.coocan.jp/Delphi/plSamples/569_ADO_dBASE.htm
|