アプリ版:「スタンプのみでお礼する」機能のリリースについて

上記の環境でプログラムを作成しています。
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でテーブルの参照はできています。

A 回答 (5件)

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


・・・
完全削除についてはリリースノートにも記載されております。

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

参考URL:http://otn.oracle.co.jp/document/products/oracle …
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考になりました。

とりあえず問題も解決し、レジストリのクリア方法もわかりましたのでこの件はこれで締め切らせていただきます。

お礼日時:2004/02/11 02:21

>昔の古いoracleをインストールしたりしたのがまずかったのでしょうか


という事なので、前回のレジストリーが一部残っていて書き換えが正常にできなかったのではないでしょうか。
下記は8iのアンインストールのページですが、hkey_localmachine\software\Apache Group が違うくらいで9iでもほぼ同じ構成です。
結果は保証できませんが、お手間でなければ1度9iをアンインストールし、URLを参考にレジストリーを整理、再インストールされてみてはいかがでしょうか。

ttp://www.iceprobe.net/oraoraadmin/admin_Uninstall.html
    • good
    • 0
この回答へのお礼

質問には書きませんでしたが、レジストリの削除も行っています。フォルダごとファイルを消すことも行いました。しかし、完全かというとあまりに多いので少しは残したと思います。まそれがいけないというといけないのでしょうが、完全になくなってるキーを再生くらいしてくれても良さそうです。実際多くのoracle何とかのキーはされてます。
oo4oだけがされないというのは解せません。

お礼日時:2004/02/10 02:28

私も Windows XP + Oracle 9i + oo4o の組み合わせを使用していますが、正常に CreateObject が実行できています。


やはり、レジストリのどこかが壊れているとか、そのPC固有の問題ということでしょうかね。
ちなみに、
Set OraSession = New OraSessionClass
でも、やはり失敗するのでしょうか?(するんでしょうね。)

この回答への補足

皆様にご助言いただきましてありがとうございました。

接続についてはできる様になりました。

別の動くマシンのレジストリ設定から、Oracle Objects For OLEに関するものを抜き出しコピー(書き換え)しました。

とりあえずの結論として
1.XOraSessionに関するレジストリキーが存在しなかった
2.XOraServerのCLSIDが間違っていた
3.oip9.dllを指定しているレジストリキーが存在しなかった

ということです。

しかしインストーラからクライアントモジュールをインストール(何度も)しているのになぜそれらのキーが正常にできなかったのかが疑問の残るところです。

これらについて何かご存知でしたらまたよろしくお願いします。

補足日時:2004/02/09 23:51
    • good
    • 0
この回答へのお礼

やはり固有の問題ですね。
昔の古いoracleをインストールしたりしたのがまずかったのでしょうか?(もちろんアンインストールしてあります)
>Set OraSession = New OraSessionClass
やはり失敗しますね。

お礼日時:2004/02/09 12:59

Set OraSession = CreateObject("OracleInProcServer.XOraSession")



ここで失敗していると言う事はOO4OのActivXオブジェクトの登録に失敗しているか別の場所見に行っている可能性が高いです。

OO4OのDLLを再登録する場合は、

コマンドラインから

%ORACLE_HOMEの有るドライブへ移動。
> cd %ORACLE_HOME%bin
> regsvr32.exe oip9.dll
> oo4oparm.reg

を実行。

Oracle InProc Server 4.0 Type Libralyを追加していると言うことは

Dim OraSession As OraSession
で変数定義してますよね?

Dim OraSession As Objects
の方が無難な指定なので、Type Libraryがうまく参照出来てない場合はこちらを試してみるとか。
    • good
    • 0
この回答へのお礼

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

%ORACLE_HOMEの有るドライブへ移動。
> cd %ORACLE_HOME%bin
> regsvr32.exe oip9.dll
念のために実行

> oo4oparm.reg
このファイルはデフォルトeドライブで作成されているためそのまま実行はせず、レジストリエディタでファイル内容と同じ内容が登録されていることを確認しました。(e→cで)

書き忘れましたが
Dim OraSession As Objects
で定義しています。

試しに
Dim OraSession As OraSession
に変更してみましたが、こちらでも同じエラーがでました。

お礼日時:2004/02/09 12:13

>VBの参照設定でOracle InProc Server 4.0 Type Libraly を追加しています。



外してみたらどうでしょう?
OraSessionはObject型にして
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
はずしてみても結果は同じでした。

お礼日時:2004/02/09 12:00

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

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