Showing posts with label Data Access. Show all posts
Showing posts with label Data Access. Show all posts

Saturday, October 8, 2016

How to correctly release object variables in ADO

Connection object

Cnxn.Open sConnString     '"Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=JCGPRD01)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=JCG04AW.vsp.sas.com)(PORT=6660)))(CONNECT_DATA=(SID=JCGPRD01)(SERVER=DEDICATED)));User Id=jcg0vbapp;Password=oyv3re8d4;"
          '
100       If Cnxn.State <> adStateOpen Then

110          sMsg = "**** ERROR Could Not Open Connection to File! ****" & vbCrLf & vbCrLf & _
                       "in Module 'modUtils' - Function 'Fetch_TD_Data'" & vbCrLf & "Line # " & 90 & vbCrLf & _
                       vbCrLf & " SQL: '" & strSQL & "'"
120          vLogMsg = sMsg
130          MsgLog

140          GoTo Fetch_TD_Data_Exit
150       End If


 Recordset object
Set rs = New ADODB.Recordset
190       strSQL = cnstLOCK_ROWS & strSQL
200       rs.Open strSQL, Cnxn  ', adOpenStatic, adLockReadOnly, adCmdText 'adLockOptimistic  'adLockReadOnly
          '
210       If rs.State <> adStateOpen Then

220          sMsg = "**** ERROR Could Not Open/Find File! ****" & vbCrLf & vbCrLf & _
                       "in Module 'modUtils' - Function 'Fetch_TD_Data'" & vbCrLf & "Line # " & 190 & vbCrLf & _
                       vbCrLf & " SQL: '" & strSQL & "'"
230          vLogMsg = sMsg
240          MsgLog

250          GoTo Fetch_TD_Data_Exit
260       End If



Determine if a recordset contains data


If Not rs.EOF And Not rs.BOF Then    'Check for End or Beginning of File
'310           Debug.Print rs!locationid    'Print the contents of the field...
'           End If
'280       If rs.RecordCount > 0 Then
360          vtemp = rs.GetRows()
370          If IsArray(vtemp) Then
380             Fetch_TD_Data = TransposeArray(vtemp)    'vtemp '
390          End If
400       Else
410          sMsg = "**** ERROR NO DATA FOUND ****" & vbCrLf & vbCrLf & _
                       "in Module 'modUtils' - Function 'Fetch_TD_Data'" & vbCrLf & "Line # " & 140 & vbCrLf & _
                       vbCrLf & " SQL: '" & strSQL & "'"
420          vLogMsg = sMsg
430          MsgLog
440       End If 



Cleanup recordset object variable

 ' clean up
450       If Not rs Is Nothing Then
460          If rs.State = adStateOpen Then rs.Close
470       End If
480       Set rs = Nothing



Cleanup connection object variable

 490       If Not Cnxn Is Nothing Then
500           If Cnxn.State = adStateOpen Then Cnxn.Close
510       End If
520       Set Cnxn = Nothing