VBで OracleInProcServer.XOraSession を使い、
oracle9iのサーバーへ接続したいのですが、
現在10gのクライアントがインストールされており、
9iをインストールしてもサーバーへ接続できません。

レジストリを見るとoo4oは10gへ向いているようですが、9i用のDAOを利用したいです。

例えばOracleInProcServer.XOraSessionを利用したときに9iのoo4oを参照したいのですが、どのような方法があるでしょうか?

宜しくお願い致します。

A 回答 (2件)

10gと9iの連携はしたことがありませんが、9iクライアントから8iサーバへの接続はしたことがあります。



サーバが9iだから9iクライアントを利用したいというだけであれば、10gクライアントからでも接続できませんか?

どうしても9iを利用したいのであれば、参照設定に入れてしまえばできませんか?
参照設定に
[OracleInProcServer X.X Type Library]
が二つ存在していませんか?

環境が無いままに話をしているので、想像で話をしております。すいません。

この回答への補足

ご回答ありがとう御座います。

>サーバが9iだから9iクライアントを利用したいというだけであれば、10gクライアントからでも接続できませんか?

試してみたのですが、
"接続できません。, ORA-03134: このバージョンのサーバーへの接続は、サポートされていません。
"
となってしまいます...

>OracleInProcServer X.X Type Library]
が二つ存在していませんか?

参照設定には
OracleInProcServer 5.0 Type Library
があります。これは10gのクライアントでしょうか?
ほかに関係ありそうなORACLEの参照は、
Oracle Administration Assistant 1.0 Type Library
Oracle Data Control
Oracle Primary Snap-In 1.0 Type Library
OraOLEDB 1.0 Type Library
などです。

9i のクライアント用の参照が入っていないのでしょうか?
9i のクライアントの OracleInProc Server x.x Type Library のx.xは、いくつになるでしょうか?

補足日時:2005/10/10 08:53
    • good
    • 0

>参照設定には


>OracleInProcServer 5.0 Type Library
>があります。これは10gのクライアントでしょうか?
だと思います。

>9i のクライアントの OracleInProc Server x.x Type Library のx.xは、いくつになるでしょうか?
今オラ9がないのでわかりませんが、
http://okweb.jp/kotaeru.php3?q=774379
の#1のtaka_tetsu さんの発言によると4.0のようです。


ふと思ったのですが、オラ9クライアントのインストールディスクから、コンポーネントだけインストールしていませんか?
もしこれらのファイル
%oracle_home%\bin\oip9.dll
%oracle_home%\bin\oip9.tlb
%oracle_home%\bin\oraansi.dll
%oracle_home%\bin\oradc.ocx
が存在していなかったら、ODBCでしか利用できません。
SQLPlusもODBCです。

これらのファイルは、ディスクのどこかに入っているのですが、ヘルプに書いてあったと思います。
もし他の端末でつながる環境があるのであれば、その端末からコピって持ってきたらよいです。
さらに
・oip9.dll
・oradc.ocx
はレジストリ登録する必要があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QOracle8iから9iへ移行後、接続できない

環境:Oracle9i 2.0
VB :VB6
件名の通りです。Oracle9iクライアントにバージョンアップしました。
その後、既に作成されているプログラムを開いて実行しようとするとエラーになります。
原因はOracle InProc Server 4.0 Type Libralyが参照不可になっていました。
別のPCにはOracle9i管理者版をインストールしたのですが、こちらは問題なく動作します。
Oracle9i管理者とクライアントによってVB6の動作に違いがあるのでしょうか?
ちなみにOracle9i管理者版でOracle InProc Server 4.0 Type Libralyを参照しているファイルはoip9.tlbでしたのでoip9.dllの2つのファイルをクライアント版のPCに登録したのですが、それでも動作しませんでした。
原因がわからず困っています。どなたかアドバイスお願い致します。

Aベストアンサー

該当の Type Libraly がインストールされていないだけではないでしょうか?
確か、デフォルトではインストールされなかったと思いますので、再度セットアップを行い、カスタムで探してみてください。

QVB + oracle oo4o でのトランザクションについて

さまざまな過去ログやHPを見てチャレンジしているのですが、うまくいきません。

VB + oracle oo4oで接続しています。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_s23.htm

↑等を参照して、

OraSession.BeginTrans
OraSession.CommitTrans
OraSession.Rollback

を使ってやっています。

DML文単位ではうまくいっているのですが、

複数のDML文でまとめてコミット、ロールバックできるようにしたいのです。

理想は、フォームopenのイベントタイミングで
OraSession.BeginTrans

フォームcloseのイベントタイミングで
OraSession.Rollback

で、何度も試していますが、うまくいきません。

最終的には、全部うまくいったらコミットのようにしたいのですが、どうしたらよいでしょうか?

Aベストアンサー

>>VB の rdo によるアクセスでは、専用スタート、コミット、ロールバック命令があります。
>rdoではなくoo4oですので、リンクの方法は該当しないようです。


参考URLの文章が言葉が足りていないようなので、参考URLの補足です^^;;;

この文意は「rdo限定の説明」ではなく、「rdoでも」という意味ですよー


>Oracle は、drop table などの DDL 命令では、自動コミットされます。
どのようにトランザクションをかけようとも、オラクルではDDL命令~(云々)
って捕らえてくださいねー

Qoo4o+ACCESS(VBA)で出来ますか?

VB6とORACLE9i(oo4o)で開発しているものがあります。
これをAccess(VBAとoo4oを使用して)でも同じように「Dynaset」などを使用してOracleのデータを加工することは可能でしょうか?
また、VBでは、一覧を出したいときは、SPREADなどを使用して開発しておりますが、Accessを使用した場合同様なことは出来るのでしょうか?
可能な場合Accessでは、モジュールから直接フォーム上にデータを表示することは、できますでしょうか?一度テーブルなどに落としてからという手間が必要になるのですか?どうぞ、宜しくお願い致します。

Aベストアンサー

#2です。
SRREADのように出したいなら、いちどアクセス上にデータを落とし込んだ方が簡単だと思います。

確か直接oo4oのオブジェクトからも渡せたと思うのですが、最近ACCESSはすっかりさわっていないので、具体的な方法はちょっと覚えてません。あと参考になるようなWebなどはちょっとわからないです。すみません。

ちなみに私がいった方法ですと、残念ながらそのままでは「複数選択」は出来ないかと……。

やるとしたら選択したレコードを変数か何かに記録していってって感じになると思います。

ちょっとACCESSだけでやるのは厳しいかなぁ、という気もしますが、私が知らないだけで何らかの方法で実現出来るかもしれません。

あまりお役にたてなくてすみません。

QVB6(SP5)+OO4OでCreateObjectが失敗する

上記の環境でプログラムを作成しています。
Windows2000ではうまくいきました。
WindowsXP(Professional)で失敗します。

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(C_ORACLE_TNS, C_ORACLE_USER & "/" & C_ORACLE_PASS, 0)

のようなコーディングでCreateObjectのところで失敗しエラーとして429 ActiveX コンポーネントはオブジェクトを作成できません。
というのが発生します。

Oracleのバージョンは9iでそのクライアントパック9.2.0.1.0を管理者モードでインストールしています。
もちろんOO4Oはインストールされていますし、VBの参照設定でOracle InProc Server 4.0 Type Libraly を追加しています。

何度か再インストールなどしましたが全く同じです。何がいけないのでしょうか?直接回答でなくてもヒントでも何でも教えてください。

なおSQL Plusでテーブルの参照はできています。

上記の環境でプログラムを作成しています。
Windows2000ではうまくいきました。
WindowsXP(Professional)で失敗します。

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(C_ORACLE_TNS, C_ORACLE_USER & "/" & C_ORACLE_PASS, 0)

のようなコーディングでCreateObjectのところで失敗しエラーとして429 ActiveX コンポーネントはオブジェクトを作成できません。
というのが発生します。

Oracleのバージョンは9iでそのクライアントパッ...続きを読む

Aベストアンサー

通常は正しく削除されてしかるべきなのでしょうが、レジストリにキーが残った状態になることもありますので
・・・
完全削除についてはリリースノートにも記載されております。

Oracle9i Client for Windows インストレーション・ガイド リリース2 (9.2.0.1.0)(2002/8/7)
「オラクルコンポーネントのインストール」「oracleコンポーネントとサービスの削除」

参考URL:http://otn.oracle.co.jp/document/products/oracle9i/920/windows.html

QOO4Oのインストールのしかた

VBでオラクルを使ってデータベースへ接続をするのですが、色々調べた所
0040(Oracle Objects for OLE)を使ってやる事になったのですが、ド素
人の為、0040のインストールのしかたがさっぱりわかりません。

0040自体どこかから入手しないといけないのでしょうか?
バカにでもわかるように教えてください!よろしくお願いします。

環境はVB6.0(SP4)・オラクル8.1.6です。

Aベストアンサー

OracleのCDについている、OracleCliantを開発する端末に入れてください。
この中に、入ってます。

インストール後、Net8の設定をすれば準備OK。

後は、VB側で、Sessionを開いてDBを開いてと、DAOやADOと同じような感じでお使いください。

例)
※DBを開くまで
Dim OraSession as Object
Dim OraDB as Object

Set OraSession = CreateObject("OracleInprocServer.XOrasession")
Set OraDB = OraSession.Opendatabase(Net8の設定名, ユーザーID & "/" & パスワード, オプション)

細かいところは、インストール後に「Oracle Objects For OLE」のオンラインヘルプをご覧ください。

なにか私にわかることであればフォローしますので、
がんばってみてください。


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報