2

ほとんどが VB6 と VC++ 6 で作成された一連の Windows プログラムがあります。そのインストーラーは、InstallShield を使用して作成されます。

最近、数人のユーザーが Vista にインストールしようとして問題を報告しています。「このマシンに MDAC 2.6 Sp2 をインストールできません。MDAC 2.6 Sp2 には、次の構成のいずれかが必要です」というエラーが表示され、いくつかの OS がリストされますが、Vista はその中にありません。

少しググると、InstallShield の MDAC の処理にバグがあることがわかります。VistaにはMDAC のようなものがないため、Vista ではチェックすべきではありません (新しい「Windows DAC」があります)。

そのページで提案されている InstallShield プロジェクトに変更を加えることができましたが、それをテストする方法がないため、そうすることに懸念があります (この問題はすべての Vista マシンで発生するわけではなく、変更できなかったわけではありません)。私がアクセスできるすべての Vista マシンで発生します)。

しかし、ウィキペディアの MDAC に関するページを見た後では、そもそもプログラムになぜそれが必要なのか想像できません。少なくとも明示的には、データベースを使用していません (使用している Microsoft コンポーネントが使用している可能性があります)。

私は InstallShield プロジェクトの最初の作成者ではありませんでした。私は、MDAC が不注意に追加されたのではないかと疑い始めています。

プログラムに MDAC が必要かどうかを明示的に判断するにはどうすればよいですか? VB6 および VC++ プロジェクトの参照などを見ることができます。InstallShield プロジェクトから MDAC を安全に削除できるかどうかを確認する方法はありますか? たとえば、私の VB/VC++ プロジェクトに存在しない場合、私のプログラムが間違いなく MDAC を必要としないことを意味する単一の MDAC リファレンスがあるでしょうか?

助けてくれてありがとう。

4

3 に答える 3

4

おっしゃるとおり、MDAC はおそらく元の InstallShield プロジェクト構成に含まれており、誰もそれを削除することはありませんでした。

VB6側では、「参照」ダイアログ(ideのプロジェクトドロップダウンメニューにあると思います)に移動し、MDACと関係があるかどうかを確認することで、MDACが使用されているかどうかを確認できるはずですまたはMSAccess. しばらく VB6 を使用していませんが、テキストは "Microsoft ActiveX Data Objects 2.x Library" のようになっているはずです。

C++ 側で使用される可能性は低いと思いますが、msdado、mdac、msaccess などのキーワードを検索して、mdac dll の 1 つに #import の兆候があるかどうかを確認できます。

于 2009-07-08T16:05:25.673 に答える
3

Windows XP 以降に展開する場合、MDAC または Jet 4.0 を含める理由はありません。XP RTM (ゴールド) でさえ、MDAC 2.7 と Jet 4.0 が同梱されているためです。

Microsoft データ アクセス コンポーネント (MDAC) のリリース履歴

Microsoft Jet 4.0 データベース エンジンの最新のサービス パックを入手する方法については、最近の Jet の履歴を参照してください。

MDAC リリースには、ADO 用の互換性のあるタイプ ライブラリが含まれているため、プログラムが MDAC 2.6 に対してコンパイルされた場合でも、実際にはターゲット コンピューターで最新の ADO が使用されます。プログラムが ADO​​X に事前にバインドされている場合、本当の悲しみが訪れる可能性があります。

ADOX には適切な互換性インターフェイスが同梱されていないため、ほとんどの場合、プログラムはADOX で遅延バインディングを使用する必要があります。

DAO は別の問題ですが、(a.) 正当な言い訳なしに誰も実際に使用するべきではなく、(b.) DAO 3.6 で消滅したため、プログラムが 3.6 と Jet5x にアップグレードされている限り、互換性の問題は発生しません ( Jet 4.0、Access 2000 形式)。


もちろん、XP からダウンレベルで展開する場合、話はさらに複雑になります。

于 2009-07-08T23:06:40.470 に答える
0

最初は Windows XP からだ​​と思いますが、Microsoft は MDAC を含め始めました。ただし、MDAC バージョン 2.6 以降では、Jet 4.0 コンポーネントが含まれなくなりました。( Jet 4.0 SP8 はここにあります)

Visual Fox Pro を使用している場合は、コードに応じて ODBC または OLEDB ドライバーをインストールする必要があります。 ODBCOLEDB _

これらのダウンロードはすべて、少なくとも MDAC 2.6 がインストールされている必要があります。

于 2009-07-08T16:23:44.967 に答える