投稿時間: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
|