- PR -

VB6.0でORCLE9.0iに接続

1
投稿者投稿内容
ysa
会議室デビュー日: 2008/02/14
投稿数: 2
投稿日時: 2008-02-14 11:16
お世話になります。
業務ソフトでVBからオラクルに接続しております。
以下、ソースです。

'オラクルDB接続
Public Function pb_OraOPN() As Boolean
On Error GoTo Ora_Error

Dim strCNN As String

'プロバイダ
strCNN = "Provider=MSDAORA.1;"
'サービス名(DB名)
strCNN = strCNN & "Data Source= " & pIniFile.ora_service & ";"
'ユーザーID
strCNN = strCNN & "User ID= " & pIniFile.ora_UID & ";"
'パスワード
strCNN = strCNN & "Password= " & pIniFile.ora_PWD & ";Persist Security Info=true"

'コネクションセット
Set Ado_ora = New ADODB.Connection

'DBオープン
With Ado_ora
.ConnectionTimeout = 20
.Mode = adModeRead
☆ .Open strCNN  ☆
.CursorLocation = adUseClient
End With

pb_OraOPN = True

EXIT_PROC:
Exit Function

Ora_Error:
pb_OraOPN = False
Call psubWriteErrLog("modCommon pb_OraOPN")
Resume EXIT_PROC

End Function

このソースでオラクル(サーバー)に接続できるのですが、
他の端末で試したところ☆☆のところで以下のエラーが出ます。

ErrNo:-2147467259
Oracleエラーが発生しましたが、エラーメッセージはOracleから取得できませんでした。

接続が成功する環境は
Windows XP pro
Oracle9.0i(サーバー)

接続が失敗する環境は
Windows XP pro
Oracle9.0i(クライアント)

失敗する環境のOracle(クライアント)は正常にサーバーをみにいけているので設定が悪いとは思うのですが、どの設定をかえればいいのかがわかりません。

Oracle(サーバー)のalert_logは以下の通りです。

Thu Feb 14 08:59:29 2008
alter database mount exclusive
Thu Feb 14 08:59:39 2008
Successful mount of redo thread 1, with mount id 1246916338.
Thu Feb 14 08:59:39 2008
Database mounted in Exclusive Mode.
Completed: alter database mount exclusive
Thu Feb 14 08:59:39 2008
alter database open
Thu Feb 14 08:59:43 2008
Beginning crash recovery of 1 threads
Thu Feb 14 08:59:44 2008
Started first pass scan
Thu Feb 14 08:59:48 2008
Completed first pass scan
743 redo blocks read, 27 data blocks need recovery
Thu Feb 14 08:59:48 2008
Started recovery at
Thread 1: logseq 300, block 17831, scn 0.0
Recovery of Online Redo Log: Thread 1 Group 5 Seq 300 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\ORADATA\HOPESXJ.HOPE\REDO5A.RDO
Mem# 1 errs 0: D:\ORACLE\ORADATA\HOPESXJ.HOPE\REDO5B.RDO
Thu Feb 14 08:59:50 2008
Ended recovery at
Thread 1: logseq 300, block 18574, scn 0.7985058
27 data blocks read, 27 data blocks written, 743 redo blocks read
Crash recovery completed successfully
Thu Feb 14 08:59:58 2008
Thread 1 advanced to log sequence 301
Thread 1 opened at log sequence 301
Current log# 1 seq# 301 mem# 0: D:\ORACLE\ORADATA\HOPESXJ.HOPE\REDO1A.RDO
Current log# 1 seq# 301 mem# 1: D:\ORACLE\ORADATA\HOPESXJ.HOPE\REDO1B.RDO
Successful open of redo thread 1.
Thu Feb 14 08:59:59 2008
SMON: enabling cache recovery
Thu Feb 14 09:00:07 2008
Undo Segment 1 Onlined
Undo Segment 2 Onlined
Undo Segment 3 Onlined
Undo Segment 4 Onlined
Undo Segment 5 Onlined
Undo Segment 6 Onlined
Undo Segment 7 Onlined
Undo Segment 8 Onlined
Undo Segment 9 Onlined
Undo Segment 10 Onlined
Successfully onlined Undo Tablespace 1.
Thu Feb 14 09:00:07 2008
SMON: enabling tx recovery
Thu Feb 14 09:00:08 2008
Database Characterset is JA16SJIS
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: alter database open

どなたかご教授お願いします。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-02-14 14:33
  • 接続文字列は正しく構築出来ていますか?
  • OLEDBの設定は正しいですか?
  • > Oracle(クライアント)は正常にサーバーをみにいけている
    どのように確認されたのでしょうか?
    (SQL/Plusで@データソース名で接続出来ていますか?)
  • クライアントに9i以外のバージョンは入ってませんか?

考えられるのは、こんなところでしょうか。

アラートログにはオラクルエラー(ORA-XXXX)は出ていませんね。
ysa
会議室デビュー日: 2008/02/14
投稿数: 2
投稿日時: 2008-02-18 16:21
返信遅れました。
くまっち様、回答ありがとうございました。

今回は社内環境でテストした際にプログラム上から接続できなかったのですが、、、

>> Oracle(クライアント)は正常にサーバーをみにいけている
>どのように確認されたのでしょうか?
>(SQL/Plusで@データソース名で接続出来ていますか?)
オラクルのクライアントが入っている端末から
全てのプログラム→
オラクル→
エンタープライズマネージャー→
パスワード、ユーザーID入力
で直接接続を確認しました。

実は時間がなかったのでユーザーにお持ちした際にデバッグする覚悟で仮納品した際に
無事に接続出来ました。

こうなるとクライアントのPCの設定か何かが悪かったのだと思うのですが、現在今だ原因不明です。

ユーザーで無事に動いてくれているので助かってはおりますがこれからも気を抜けなさそうです、、、

クライアントに9i以外のバージョンは入ってませんか?


考えられるのは、こんなところでしょうか。

アラートログにはオラクルエラー(ORA-XXXX)は出ていませんね。
ほったて
ベテラン
会議室デビュー日: 2007/11/10
投稿数: 68
投稿日時: 2008-02-18 18:29
エラーが出るならクライアントマシンのsqlnet.logでは。
データベースにエラーが出ているわけではないので、alert.logには何の情報も無いでしょう。
ノラ
常連さん
会議室デビュー日: 2003/11/06
投稿数: 37
お住まい・勤務地: 東京都
投稿日時: 2008-02-22 15:59
エラーの出るクライアントから
・tnspingがサーバーに通るか
・SQL*PLUSで接続できるか
あたりから原因を絞ってみては。
1

スキルアップ/キャリアアップ(JOB@IT)