投稿日 | : 2006/07/16(Sun) 13:36 |
投稿者 | : 社会人ルーキー |
Eメール | : |
URL | : |
タイトル | : VB6+Oracle10g ADO接続について |
はじめまして
社会人ルーキーです。
どうしても解決できない問題があり投稿させて頂きました。
VB6(SP5) ADO2.8
Windows XP(SP2)
Oracle10g
画面上に配置してあるグリッドにデータを表示した
状態で画面を閉じるとアプリケーションエラーが発生します。
いろいろ調べてみると、データを取得せず(DBに接続しない)、画面を表示し
画面を閉じるとアプリケーションエラーが発生しません。
DB切断処理も走っています。。。。
何が原因でアプリケーションエラーが発生しているのかがわからず苦慮しております。
どなたか心あたりある方ご教授いただけませんでしょうか?
以下は処理概要になります。
Public Function fncGetKanriIchiran(aryDat() As Variant) As Boolean
On Error GoTo Err_Proc
Dim lobjCon
Dim lobjRs As ADODB.Recordset 'ADODB.Recordset
Dim lobjRs2 As ADODB.Recordset
Dim lsSql As String 'SQL文生成用
Dim laryBuf() As Variant
Dim lnCnt As Integer
fncGetKanriIchiran = False
Set lobjCon = CreateObject("ADODB.Connection")
lobjCon.Open gsOraConnect
lsSql = ""
(中略)
Set lobjRs = lobjCon.Execute(lsSql)
If lobjRs.EOF = False And lobjRs.BOF = False Then
lobjRs.MoveFirst
laryBuf = lobjRs.GetRows()
Call subNullToStr(laryBuf)
ReDim aryDat(8, UBound(laryBuf, 2))
For lnCnt = 0 To UBound(laryBuf, 2)
(中略)
Set lobjRs2 = lobjCon.Execute(lsSql)
If lobjRs2.EOF = False And lobjRs2.BOF = False Then
aryDat(2, lnCnt) = RTrim(lobjRs2.Fields("A").Value)
End If
aryDat(0, lnCnt) = laryBuf(0, lnCnt)
aryDat(1, lnCnt) = laryBuf(1, lnCnt)
aryDat(3, lnCnt) = laryBuf(2, lnCnt)
aryDat(4, lnCnt) = laryBuf(3, lnCnt)
aryDat(5, lnCnt) = laryBuf(4, lnCnt)
aryDat(6, lnCnt) = laryBuf(5, lnCnt)
aryDat(7, lnCnt) = laryBuf(6, lnCnt)
Next
lobjRs2.Close
Set lobjRs2 = Nothing
fncGetKanriIchiran = True
End If
'DB切断
lobjRs.Close
lobjCon.Close
Set lobjRs = Nothing
Set lobjCon = Nothing
Exit Function
Err_Proc:
MsgBox ERR_MSG, vbCritical
Debug.Print Err.Description
End
End Function