InstallSheildExpressでBDEのエイリアス変更


yTake  2011-06-13 20:41:26  No: 40655

yTakeです。

以前はお世話になりました。

早速ですが、今回は、エイリアスの変更方法についてです。
今となっては旧方式ですが、現状で運用する他ないので、お尋ねしています。

BDEを利用したアプリを開発しています。
Win7に伴いデータベース本体のパスを変更しています。
InstallShieldExpress4でインストーラを作成しましたが、エイリアスが変更出来ず、アプリ実行時にエラーが生じます。

開発環境下では正しく変更後のパスのデータベースを参照していますが、インストーラでインストールしたアプリではマージモジュールの保存先を参照している様です。

”INIファイル変更”で”Params”と言うキーワードに変更後のパスを記述していますが、生かされていない様です。(パス自体に誤りはありません)

InstallShieldExpressの電子マニュアルによると、"BDE Designer"と言うユーティリティを使うとも記載さsれていますが、"BDE Designer"の起動ボタンが所定の場所に見当たりません。なのでINIファイルで設定しようと試みた経緯です。

なお、元々InstallShieldExpress4にはBDEマージモジュールはありませんでしたが、旧版からコピーして組み込みました。(インターネット上にその様な解説があった)

開発環境:Windows XP Professional SP3
          DELPHI7, BDE 5.01
          InstallShieldExpress4
運用環境:Windows7

よろしくご教授お願い致します。


yTake  2011-06-14 04:43:53  No: 40656

補足です。

パスは絶対パスでドライブ番号から記述しています。

また、DELPHIは7ですが、InstallShieldExpressはInstallShieldExpress3.5ではなく、DELPHI8のInstallShieldExpress4を使用しました。

3.5ではWin7へのインストールに失敗する為です。
開発アプリのDB機能以外は正常に機能するので、DELPHI7の問題ではなくInstallShiedExpressの問題と判断しました。
DELPHIとInstallShieldExpressの組み合わせも変えるべきでは無いのでしょうか?

よろしくお願いします。


かず  2011-06-14 21:41:09  No: 40657

エイリアスが変更出来ず
というのはWin7(64ビット版)だとプログラムフォルダがXPのときと変わるため、自動で変えたいということでしょうか?
エリアスのパスは具体的にはどのようになっているのでしょうか?


Quest  2011-06-14 21:43:31  No: 40658

直接の回答ではないですが。
私はDelphi2007で作ったアプリをDelphi6のInstallShieldExpress3.5でVistaや7に
インストールしています。
インストーラーを起動するときに「管理者として実行する」を選べば、BDEを含むものでも
インストールできています。
可能ならば、UACを完全にOFFにすれば、まず大丈夫だと思います。
もちろん、保証できるものではないですが。

私はデータベース(テーブルファイル)があるパスなどは、インストーラーで行わず
(InstallShieldExpress3.5で、それができるのか知らない)
アプリ側で起動時に設定しているので。

本当はInstallAwareを使えばいいんでしょうけど、日本語化がめんどくさそうで・・・。
一回やってしまえばそれほどではないんでしょうが、ただの食わず嫌いですね。


yTake  2011-06-15 20:54:07  No: 40659

yTakeです。

かずさん、Questさん、ありがとうございます。

先ず、Win7は32ビット版です。互換性を少しでも考えて32ビット版にしています。
エイリアスのパスは、
"Params=PATH:C:\Users\R_TECH\R-SOFT\UserData\DB_Work;ENABLE BCD:FALSE"
としているつもりです。
アプリケーションは、
"C:\Program Files\Common Files\Borland Shared\BDE"
にデータベースが見つからないと言っています。
実際のDBファイルの配置場所は、
"PARH=C:\Users\Uname\AppName"
です。

InstallShieldExpress3.5ですが、現在は上書きアップデートされて確認できませんが、”3.5”で作成したインストーラでXP上では正常にインストールできたものが、Win7上ではエラーとなりインストールに失敗しました。
インストールは管理者でログインし行なっていたので、UAC等の問題では無かったかと思います。
また、”4”で作成したインストーラではアプリケーション自体のインストールはエラー無く完了できています。なので”3.5”の問題と推察したまでです。確証はありません。
問題は、DBへアクセス出来なくなってしまった事です。

確かに、アプリ内で絶対パス指定する方策もあると思います。
エイリアスで出来ても良いはずとも思います。

以上です。よろしくお願いします。


Quest  2011-06-16 01:30:50  No: 40660

管理者権限を持ったユーザーでログインしていても
UACが有効な場合は「管理者として実行」をやらないと
インストール中にエラーになった(特にBDE関係)気がします。
コントロールパネルのユーザーアカウントでUACを「通知しない」に設定すれば
そのまま実行しても普通にインストールできると思います。


参考  2011-06-16 01:36:21  No: 40661

DEKOさんの情報です。
http://ht-deko.minim.ne.jp/tech024.html
解決につながれば。。。


かず  2011-06-16 05:15:50  No: 40662

私もInstallShieldExpress4.0でBDEアプリケーションをインストールする場合は、Questさんが書いたとおりUACを無効にしないとBDEの設定がうまきいきませんでした。
アプリはインストールされるが、BDEの設定がエラーでとまる。
パスはParams=PATH:[INSTALLDIR];ENABLE BCD:FALSEで大丈夫ですね。

Windows7(32ビット版)でテスト


AKZ  2011-06-16 11:46:54  No: 40663

私もDELPHI7のインストーラで問題になったことがあります。Expressのやつ。
BDEを展開する時にC:\のルートに設定ファイルを書き込もうとするので
拒否されていたかと。(I何とか.CFG)
インストールエラーではないですけど設定ファイルがルートに
存在しないので、デフォルトを参照にいくとかだった気がします。
ココ
>C:\Program Files\Common Files\Borland Shared\BDE

苦肉の策で最後のREADME.TXTを読むのチェックを外さないように
して貰って、そこにバッチファイルで設定ファイルをコピーする
ような事をしました。

設定ファイルはコントロールパネルのBDE Adminの環境設定タブ->
ネイティブ->ParadoxのNet Dirで変更できると思います。

わかりにくくてごめんなさい。


yTake  2011-06-22 18:15:31  No: 40664

皆さん、ご教授ありがとうございます。
少し間があいてしまい申し訳ありませんでした。

結論的に、UACを通知しないに設定しましたが、DBへのパスは変わっていません。同様のエラーが出ます。

なぜインストールまで出来ているのにBDEエイリアスの変更がUACの設定に依存するのかが釈然としません。理屈が分かっていないので、根本的なところで何か間違えているのかもしれません。
どこかで、現在の(エラーの)エイリアス設定ファイルが暗黙で読み込まれている?
或いは、
正しいエイリアス設定が為された後で、再度エラーのエイリアス設定が暗黙的に為されている?

"参考"さんからのDEKOさん情報が有効そうです。
DBへの絶対パス指定とするか、アプリ内でエイリアスを設定する手法の方が可能性が高い気がしています。

引き続き、いろいろ試してみます。


Mr.XRAY  2011-06-25 16:08:09  No: 40665

こんにちは,Mr.XRAYです.
アプリでBDEもParadox(なのかな?)も,InstallShieldExpressも使用していません.
具体的なエラーの内容や,パスの設定,詳しい様子も分かりませんが,
Windows 7で,UACという語句が出てきました.

もしかしたら参考になればと思います.

[Windows Vista以降のOSでの使用]
http://mrxray.on.coocan.jp/Delphi/Info/OtherInfo17_VistaD2007.htm#00


yTake  2011-07-04 18:43:44  No: 40666

Mr. XRAYさん
ありがとございます。
参考になりそうなページです。
ただ、BDE、PARADOXに関して詳しい資料を持ち合わせていないので、理解には時間が掛かりそうです。


Mr,XRAY  2011-07-05 18:33:45  No: 40667

こんちには.Mr.XRAYです.

>ただ、BDE、PARADOXに関して詳しい資料を持ち合わせていないので、理解には時間が掛かりそうです。

説明不足だったようです.BDE,Paradoxそのもののことではなく,
「仮想化」のことを言いたかったのです.
Vista以降では,システム関係のフォルダにファイルが作成できません.
作成できないと,代りに別の場所に作成してしまいます.
これを削除しないと,思わぬ挙動となることがあります.

>どこかで、現在の(エラーの)エイリアス設定ファイルが暗黙で読み込まれている?

ということですので,もしかしたら,という意味で「仮想化」の記事があるリンク先を紹介したつもりでした.
失礼しました.


Mr.XRAY  2011-07-05 19:20:45  No: 40668

ちょっと表現が正確ではないですね.

>Vista以降では,システム関係のフォルダにファイルが作成できません.
>作成できないと,代りに別の場所に作成してしまいます

≪Vista以降では,(システム関係の?)フォルダにファイルが作成できない場合,
代りに,別の場所に作成してしまうことがあります≫
かな?


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

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






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