- 締切済み
VB6 ADOの参照設定の意味、
VB6.0にて、ADOを使用したアプリケーションを作成しています。 参照設定にてADO2.7を指定しています。 コンパイルしたアプリケーションを、 MDAC2.5が入っている環境で、動かしてみたら動きました。 インストールされているMDACの確認には、Microsoftのツールを使用しました。 下記コードを記述したモジュールを作成し、 Dim adoCon As ADODB.Connection Set adoCon = New ADODB.Connection MsgBox adoCon.version その環境にてバージョンを確認したら 「2.5」と表示されました。 ちなみに、MDAC2.7がインストールされている環境では、「2.7」と表示されました。 ここで質問があるのですが、 参照設定でADO2.7を指定した場合、 動作先の環境に入っている最新のADOのバージョンが使われると考えて良いのでしょうか? たとえば、動作先の環境にADO2.1が入っていたら、参照設定のバージョンに関わらず、それで動作する・・・ が、バージョンに依存するメソッドを実行するとエラーになってしまうとか。 Createobjectで生成するのと、かわらないのでしょうか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yamada_28
- ベストアンサー率43% (21/48)
'参照設定でADOのバージョンを指定しても、 'エラーにならず、動いているので、???な状態です。 こじつけではありますが、「下位互換」ってやつではないでしょうか(^^;)
- toruo
- ベストアンサー率30% (4/13)
ずいぶん昔のことなので、参考程度に。 開発時に参照設定でADOの参照を設定した場合、必ずそのバージョンが使用されます。ですので、実行環境に該当のバージョンのMDACがインストールされていないとエラーになります。 一方、参照設定は一切行わず、CreateObjectでインスタンスを生成する場合、実行環境にインストールされている最新のバージョンのADOが使用されます。 # 参照設定は一切行わない点が重要。 参考になれば。
お礼
ご回答ありがとうございます。 私もそのつもりでいたのですが、 参照設定でADOのバージョンを指定しても、 エラーにならず、動いているので、???な状態です。 うーん、なぜだろ・・・。
お礼
すいません、御礼が遅くなりました。 ご回答の方ありがとうございました。 そうですね、参照定義で2.5で定義し、 2.5以上のADOで動くのであれば、 「下位互換性」と納得するんですが、 参照定義で2.7としているのに、2.5で動くのがどうも・・・。 やはり、Createobjectを行ったときと同等の動きをしているような????