• ベストアンサー
  • すぐに回答を!

Oracle8iとI/Oするのには、ADOとOracleObjectForOLEのどちらがいいのですか?

Excel97のVBAマクロでOracle8iと接続するプログラムを作成するのですが、 OracleObjectForOLEとADOのどちらを使うのが一般的ですか? どちらの方法でも接続できるのですが、パートナーと意見が分かれています。 そもそもの違い(仕組み)とメリット・デメリットを教えてください。 また、それは単純にVBでOracleに接続する場合にも同じ事が いえるのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数246
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • msystem
  • ベストアンサー率42% (79/186)

基本的にはどちらもそれほど大きくこちらでないとという、メリットはないように思います。 それよりも、経験のある方を選んだ方が良い物ができると思います。 両方とも経験がなく、これからという場合は、次のメリット・デメリットを参考にして下さい。 ADO メリット Oracleに限らず他のRDBMSなどに接続する可能性がある場合、ADOは、プログラムの変更が最小になる可能性があります。 デメリット OSなどのアップデート(Windows UpDateやOfficeのアップグレードなど)で、動かなくなる可能性があります。また、ストアドプロシジャのコールが苦手です。 oo4o(OracleObjectForOle) メリット Oracle純正であることを考えても分かるように、パフォーマンス的にも機能的にもOracleに最適化されています。 デメリット 使用法法にちょっと癖があります。(例えば、デフォルトプロパティが正常に働かない時がある。)あと、開発用ライセンスが必要になり、ライセンスが非常に高価です。 あと、VBの場合ですが、基本的には同じだと思いますが、VBで開発の場合、Excelなどよりも、更新、削除の割り合いが多くなる傾向があるように思います。そのため、ストアドプロシージャの使用も増える可能性が増えますので、oo4oの方が使いやすくなるのではないかと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 『開発用ライセンスが必要になり、ライセンスが非常に高価です。 』 の部分が気になりますが、会社としてはすでにoo4oを使用しているので 問題ないと判断しました。 これで安心してoo4oで開発することに決定できました。

関連するQ&A

  • VBからOracleへの接続方法

    VBからOracleへの接続方法として、ADO、DAO、ODBC、oo4oなど色々と方法があるようですが、どれが一番いいんでしょうか。 oo4oは別途インストールが必要でしょうか。 環境はまっさらなXPから、Excelマクロでサーバ上のOrcleに接続します。

  • Access→Oracleデータ参照にはADOとパススルークエリどちらが良い?

    AccessからOlacleに接続してデータを取得する処理について 教えてください。 数十万件単位のレコードがあるOracleのテーブルを参照する 必要があるのですが、かなりの負荷がかかると思うので出来 るだけ効率の良い方法で取得したいと思っています。 現在はパススルークエリを作成して、必要に応じてQueryDef でSQLを書き換えて使用しています。 特に問題は感じないのですが、本などを見るとADOやDAOで Oracleに接続し、結果をRecordSetに格納するやり方が一般 的なように思えます。 ADO/DAO接続でデータを持ってくるのと、パススルークエリで データを参照するのでは処理スピードは違うでしょうか? また、パススルークエリを使用する場合のデメリットなどがあり ましたら教えてください。 よろしくお願いいたします。

  • oracleとexcelのADOによる連携について

    お世話になります。 excelからADOでoracleのデータベースにある テーブルの必要なデータのみを抽出してexcelに 書き出そうとしています。 excelのvbaコードで、まず、ADOコネクションの生成として、 「cn.Open "Provider=OraOLEDB.Oracle;Data Source=" & "DB名" & ";User ID=hpsuser;Password=○○○;", "○○○", "○○○"」と書き、 ADOレコードセットの生成で、 「 rs.Open "~(1)~", cn, adOpenDynamic, adLockOptimistic, adCmdText」 と書いていますが、上記「~(1)~」の部分がかなり長いクエリ文になっているからなのか、 エラーがかかってしまいます。 単純なテーブルのデータを呼び出す事しかできないのか、又、 長いクエリ文のデータを抽出したい場合どの様にしたら良いのか、 どなたかご親切な方、ご教示頂けます様、宜しくお願いいたします。

  • VB5.0からOracleDBにADOで接続

    VB5.0からOracleDBにADOで接続する場合、クライアント側に最低限インストールしなければならないOracleのソフトを教えてください?

  • ExcelVBAでのOracleデータベースへのSQL文発行

    Excelにデータベースのデータ構造を書いたファイルがあります。 それをVBAでOracleに直接SQL文を発行してテーブルを作成したいのですが、VBみたいにoo4oをつかって、Oracleに接続することは可能ですか? カテゴリーが違うかもしれませんが、ここで聞いたほうがわかるとおもったので、質問させてもらいました。 よろしくおねがいします。

  • DAOとADOの違いについて

    Accessからイントラネット上のデータベースに接続するための接続方法で困っています。 DAOとADOの違いが分からず困っています。 メリット、デメリットが分かる方、どうか教えてください。 宜しくお願い致します。

  • ExcelとOracleの連携について

    お世話になります。 Excelで[データ]-[外部データの取り込み]-[データの取り込み]-[新しいソース] -「ODBC DSN」-「接続するODBCデータソース」-「OracleDNS」 -「Oracle ODBCドライバ接続」ではOracleに接続する事は出来、データも Excel上に表示する事が出来ました。 しかし、下記HPの http://www.atmarkit.co.jp/fdb/rensai/excel2oracle02/excel2oracle02_2.html サンプルコードを元にVBAコードを作成したのですが、 'データベース接続処理がうまくいっていない様で、 Err_Han: ' エラー処理 MsgBox (Err.Description) で、「ORA-12154:TNS: 指定された接続識別子を解決できませんでした」 と言うエラーになってしまいます。 VBAにてADOの参照設定とかしていないのですが原因はそれでしょうか。 どなたかご親切な方、ご教示くださいます様、宜しくお願い致します。

  • ExcelVBAからADOで複数のDBへの接続

    いつもお世話になっています。 ExcelVBAの初心者ですが、Oracle、Access、ExcelデータへADO接続してデータを表示するものをExcelかACCESSで作ろうとしています。 それぞれのデータは社内ネットワークのバラバラ位置にあるのですが、 ADOとは下記のイメージでいいでしょうか? 1.インポートする手間がない。 2.それぞれのDBが更新されたら、その前までのデータで表示される 3.3つのDBを同時に接続しても問題はない・・・ まだイメージが固まっていないのですが、上3つが気になっています。 また自宅でネットワーク環境になくても練習できるものでしょうか?

  • VBAでOracleにSQL発行(ADO)

    ExcelのVBAからOracleにADOで登録したく下記のコードを作成しましたが コンパイルで"変数定義がされていません”に成ってしまいます。 参照設定に何か必要なのでしょうか? ----------------------------------------------- 'ADO用のオブジェクト変数の宣言 Dim cn As New ADODB.Connection ← ここでエラー Dim rs As New ADODB.Recordset Dim rownum As Long Dim colnum As Integer 'ADOコネクションの生成 cn.Open "Provider=OraOLEDB.Oracle;Data Source=" & ActiveSheet.Cells(26, 1) & ";User ID=scott;Password=tiger;", "scott", "tiger" 'ADOレコードセットの生成(全データを返すレコードセットの生成) rs.Open "select * from emp", cn, adOpenDynamic, adLockOptimistic, adCmdText ... ... ...

  • VB2005でOracle接続

    こんにちわ。 VB2005で作ったプログラムでOracleに接続するんですが Oracleのバージョンが"7"なんです。 この組合せの場合、接続するためにはoo4oしか方法はないんでしょうか? どなたかご教授願います。