是的,我包装了我的代码,它工作得很好。我制作了这样的实用功能:
Public Sub CloseRecordSet(ByRef recordSet As ADODB.Recordset)
Try
If recordSet.State = ADODB.ObjectStateEnum.adStateOpen Then
recordSet.Close()
End If
Catch ex As Exception
Dim funcName As String = System.Reflection.MethodInfo.GetCurrentMethod().Name
SV_DZS_Utils.PrintToConsole(funcName & ": " & ex.Message & ", Source: " & ex.Source & ", StackTrace: " & ex.StackTrace)
Finally
recordSet = Nothing
End Try
End Sub
Public Sub OpenRecordSetForwardReadOnly(ByRef recordSet As ADODB.Recordset, ByVal sql As String, ByRef dbConn As ADODB.Connection)
Try
recordSet.Open(sql, dbConn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly, ADODB.CommandTypeEnum.adCmdText)
Catch ex As Exception
Dim funcName As String = System.Reflection.MethodInfo.GetCurrentMethod().Name
SV_DZS_Utils.PrintToConsole(funcName & ": " & ex.Message & ", Source: " & ex.Source & ", StackTrace: " & ex.StackTrace)
End Try
End Sub
Public Sub OpenRecordSetDynamic(ByRef recordSet As ADODB.Recordset, ByVal sql As String, ByRef dbConn As ADODB.Connection)
Try
recordSet.Open(sql, dbConn, ADODB.CursorTypeEnum.adOpenDynamic, , ADODB.CommandTypeEnum.adCmdText)
Catch ex As Exception
Dim funcName As String = System.Reflection.MethodInfo.GetCurrentMethod().Name
SV_DZS_Utils.PrintToConsole(funcName & ": " & ex.Message & ", Source: " & ex.Source & ", StackTrace: " & ex.StackTrace)
End Try
End Sub
是的,他们会抛出异常。所有的ADO方法都可以。 – GSerg
我建议在一个无害的环境下进行尝试(如果行为不像你期望的那样,它不会造成任何“永久性”伤害)。 –
包装打开是好的,dbase射击到地狱,发生。关闭,呃,你将如何处理这个问题?不要这样做。 –