Paradoxのファイル名制限について

解決


z  2013-09-26 03:13:39  No: 45340

お世話になります。

<https://www.petitmonte.com/bbs/answers?question_id=7836>
前にdbGoでParadoxファイルを作成する件について上記質問をさせて頂き、解決策を教えて頂きました。

解決策を用いると
WindowsXP     +Delphi2007+Office2003、および
Windows7 64bit+Delphi2007+Office2007
で一切問題なく動いていたのですが、一部の環境においてはテーブル作成時に
ロングファイル名の8文字制限がかかり、意図した名前でDBファイルが作成されない現象が出てきました。

例) CREATE TABLE ABC_DEFGH(FILEN CHARACTER(32));
    を実行するとABC_DEFG.DBというファイルが作成される。(9文字目であるHが消える)

現在、下記環境でそれぞれのOKやNGが出ていますが、文字数制限がかかる理由が分かりません。

OK)
Windows7 64bit + Office2010
Windows7 64bit + Office2007
Windows7 32bit + Office2007
WindowsXP      + Office2003

NG)
Windows7 32bit + Office2007
Windows7 64bit + Office2003

また、下記サイトに↓の記載がありますが、環境によっては問題なくDBファイルが作成されます。
「Paradox ISAM では、以前のバージョンの Microsoft Access と同様、ロング ファイル名はサポートされません。」
<http://support.microsoft.com/kb/286246/ja>

どなたかロングファイル名の制限にかかった場合の原因についてご存知の方は
解決策を教えて頂けませんか。


DEKO  2013-09-26 03:51:39  No: 45341

> ロングファイル名の制限にかかった場合の原因
単純に BDE がインストールされているかどうかではないでしょうか?
以下のレジストリキーが存在するかどうかを調べてみてはいかがでしょう?
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine

[dBASE / Paradox の ODBC 接続に関する資料 (Delphi Forum)]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1242


z  2013-09-27 17:25:09  No: 45342

ご指摘ありがとうございます。
制限がかからないマシンにはBDEをインストール
していませんが、
Delphi XE3をインストールしているマシンが
ありますので
念のため確認しましたところ、下記にキーは存
在していませんでした。
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine
HKEY_LOCAL_MACHINE\Software\Embarcad
ero
Delphi XE3インストールが関係しているので
しょうか。
その場合未インストールマシンについてはDLLを
実行フォルダに置く等で
対処可能なのでしょうか?


DEKO  2013-09-27 18:40:36  No: 45343

XE3 をインストールして BDE がインストールされない事はまずありません。
64bit 機で確認されたのであれば以下のキーにあるのではないですか?
HKEY_LOCAL_MACHINE\Software\WOW6432Node\Borland\Database Engine

[64 ビット バージョンの Windows でシステム レジストリを表示する方法]
http://support.microsoft.com/kb/305097/ja

> その場合未インストールマシンについてはDLLを
> 実行フォルダに置く等で
> 対処可能なのでしょうか?

BDE 関連はインストーラで配布するのが筋かと思います。
DLL だけコピーしてもレジストリキーが生成されないので、
確実に動作する保障はありません。

[http://ht-deko.minim.ne.jp/tech024.html]
http://ht-deko.minim.ne.jp/tech024.html

# 恐らく現状では Borland の Paradox 実装 (BDE) と
# Microsoft の Paradox 実装 (ODBC ドライバ) が混在していますね。


z  2013-09-28 02:54:14  No: 45344

ご指摘の通りレジストリキーが設定されていました。
BDEのインストールを避けるため、dbGoへの移植をしたので
保存するファイルの文字数を8文字に仕様変更しました。
前回に続き、アドバイスありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加