I am in the process of moving my systems from Access backends to SQL Server. I am now learning about ADO methods and am getting overwhelmed with all the different methods to do the same thing. My question is which one is the more "Correct" method and why??
Code:
Private Sub Save_System()
Dim ADO_CON As Object
Dim ADO_COM As Object
Dim STR_SQL As String
On Error GoTo err_proc
Set ADO_CON = CreateObject("ADODB.Connection")
With ADO_CON
.ConnectionString = CON_SQL_Connection
.Open
End With
If ADO_CON.state = adStateOpen Then
STR_SQL = "UPDATE "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS] "
STR_SQL = STR_SQL & "SET "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Name] = '" & Me.TXT_System_Name.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Owner] = '" & Me.TXT_System_Owner.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Version] = '" & Me.TXT_System_Version.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Status] = '" & Me.CBO_System_Status.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_License] = '" & Me.TXT_System_License.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Path] = '" & Me.TXT_System_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Documents_Path] = '" & Me.TXT_Documents_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Employee_Image_Path] = '" & Me.TXT_Employee_Image_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Error_Path] = '" & Me.TXT_Error_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Frontend_Path] = '" & Me.TXT_Frontend_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Group_Image_Path] = '" & Me.TXT_Group_Image_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Icons_Path] = '" & Me.TXT_Icons_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Install_Path] = '" & Me.TXT_Install_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Templates_Path] = '" & Me.TXT_Templates_Path.Value & "', "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Excel_Password] = '" & Me.TXT_Excel_Password.Value & "' "
STR_SQL = STR_SQL & "WHERE "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Index] = " & Me.TXT_System_Index.Value & ""
Set ADO_COM = CreateObject("ADODB.Command")
With ADO_COM
.ActiveConnection = ADO_CON
.CommandType = adCmdText
.CommandText = STR_SQL
.Prepared = False
.Execute , , adExecuteNoRecords
End With
Else
MsgBox ("Server Timed Out!"), vbCritical, "SERVER ERROR"
End If
exit_proc:
On Error Resume Next
ADO_CON.Close
Set ADO_CON = Nothing
Set ADO_COM = Nothing
Exit Sub
err_proc:
Error_Logging STR_Form:=Me.Name, STR_Procedure:="Save_System", LNG_Line:=Erl, LNG_Number:=Err.Number, STR_Description:=Err.Description
Resume exit_proc
End Sub
Code:
Private Sub Save_System()
Dim ADO_CON As Object
Dim ADO_COM As Object
Dim STR_SQL As String
On Error GoTo err_proc
Set ADO_CON = CreateObject("ADODB.Connection")
With ADO_CON
.ConnectionString = CON_SQL_Connection
.Open
End With
If ADO_CON.state = adStateOpen Then
STR_SQL = "UPDATE "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS] "
STR_SQL = STR_SQL & "SET "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Name] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Owner] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Version] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Status] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_License] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Documents_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Employee_Image_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Error_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Frontend_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Group_Image_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Icons_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Install_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Templates_Path] = ?, "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_Excel_Password] = ? "
STR_SQL = STR_SQL & "WHERE "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Index] = ?"
Set ADO_COM = CreateObject("ADODB.Command")
With ADO_COM
.ActiveConnection = ADO_CON
.CommandType = adCmdText
.CommandText = STR_SQL
.Prepared = False
.Parameters.Append .CreateParameter("SYS_System_Name", adVarChar, adParamInput, 50, Me.TXT_System_Name.Value)
.Parameters.Append .CreateParameter("SYS_System_Owner", adVarChar, adParamInput, 50, Me.TXT_System_Owner.Value)
.Parameters.Append .CreateParameter("SYS_System_Version", adVarChar, adParamInput, 25, Me.TXT_System_Version.Value)
.Parameters.Append .CreateParameter("SYS_System_Status", adVarChar, adParamInput, 25, Me.CBO_System_Status.Value)
.Parameters.Append .CreateParameter("SYS_System_License", adVarChar, adParamInput, 25, Me.TXT_System_License.Value)
.Parameters.Append .CreateParameter("SYS_System_Path", adVarChar, adParamInput, 255, Me.TXT_System_Path.Value)
.Parameters.Append .CreateParameter("SYS_Documents_Path", adVarChar, adParamInput, 255, Me.TXT_Documents_Path.Value)
.Parameters.Append .CreateParameter("SYS_Employee_Image_Path", adVarChar, adParamInput, 255, Me.TXT_Employee_Image_Path.Value)
.Parameters.Append .CreateParameter("SYS_Error_Path", adVarChar, adParamInput, 255, Me.TXT_Error_Path.Value)
.Parameters.Append .CreateParameter("SYS_Frontend_Path", adVarChar, adParamInput, 255, Me.TXT_Frontend_Path.Value)
.Parameters.Append .CreateParameter("SYS_Group_Image_Path", adVarChar, adParamInput, 255, Me.TXT_Group_Image_Path.Value)
.Parameters.Append .CreateParameter("SYS_Icons_Path", adVarChar, adParamInput, 255, Me.TXT_Icons_Path.Value)
.Parameters.Append .CreateParameter("SYS_Install_Path", adVarChar, adParamInput, 255, Me.TXT_Install_Path.Value)
.Parameters.Append .CreateParameter("SYS_Templates_Path", adVarChar, adParamInput, 255, Me.TXT_Templates_Path.Value)
.Parameters.Append .CreateParameter("SYS_Excel_Password", adVarChar, adParamInput, 255, Me.TXT_Excel_Password.Value)
.Parameters.Append .CreateParameter("SYS_System_Index", adInteger, adParamInput, , Me.TXT_System_Index.Value)
.Execute , , adExecuteNoRecords
End With
Else
MsgBox ("Server Timed Out!"), vbCritical, "SERVER ERROR"
End If
exit_proc:
On Error Resume Next
ADO_CON.Close
Set ADO_CON = Nothing
Set ADO_COM = Nothing
Exit Sub
err_proc:
Error_Logging STR_Form:=Me.Name, STR_Procedure:="Save_System", LNG_Line:=Erl, LNG_Number:=Err.Number, STR_Description:=Err.Description
Resume exit_proc
End Sub
Code:
Private Sub Save_System()
Dim ADO_CON As Object
Dim ADO_RS As Object
Dim STR_SQL As String
On Error GoTo err_proc
Set ADO_CON = CreateObject("ADODB.Connection")
With ADO_CON
.ConnectionString = CON_SQL_Connection
.CursorLocation = adUseServer
.CommandTimeout = 30
.ConnectionTimeout = 15
.Open
End With
If ADO_CON.state = adStateOpen Then
STR_SQL = "SELECT * "
STR_SQL = STR_SQL & "FROM "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS] "
STR_SQL = STR_SQL & "WHERE "
STR_SQL = STR_SQL & "[SYSTEM_NAME].[dbo].[TBL_SYSTEMS].[SYS_System_Index] = " & Me.TXT_System_Index.Value & ""
Set ADO_RS = CreateObject("ADODB.Recordset")
With ADO_RS
.Source = STR_SQL
.ActiveConnection = ADO_CON
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open , , , , adCmdText
If Not (.BOF And Not .EOF) Then
If .Supports(adUpdate) Then
![SYS_System_Name] = Me.TXT_System_Name.Value
![SYS_System_Owner] = Me.TXT_System_Owner.Value
![SYS_System_Version] = Me.TXT_System_Version.Value
![SYS_System_Status] = Me.CBO_System_Status.Value
![SYS_System_License] = Me.TXT_System_License.Value
![SYS_System_Path] = Me.TXT_System_Path.Value
![SYS_Documents_Path] = Me.TXT_Documents_Path.Value
![SYS_Employee_Image_Path] = Me.TXT_Employee_Image_Path.Value
![SYS_Error_Path] = Me.TXT_Error_Path.Value
![SYS_Frontend_Path] = Me.TXT_Frontend_Path.Value
![SYS_Group_Image_Path] = Me.TXT_Group_Image_Path.Value
![SYS_Icons_Path] = Me.TXT_Icons_Path.Value
![SYS_Install_Path] = Me.TXT_Install_Path.Value
![SYS_Templates_Path] = Me.TXT_Templates_Path.Value
![SYS_Excel_Password] = Me.TXT_Excel_Password.Value
.Update
Else
MsgBox ("Record Locked by Another User!"), vbCritical, "UPDATE ERROR "
End If
End If
End With
Else
MsgBox ("Server Timed Out!"), vbCritical, "SERVER ERROR"
End If
exit_proc:
On Error Resume Next
ADO_CON.Close
Set ADO_CON = Nothing
ADO_RS.Close
Set ADO_RS = Nothing
Exit Sub
err_proc:
Error_Logging STR_Form:=Me.Name, STR_Procedure:="Save_System", LNG_Line:=Erl, LNG_Number:=Err.Number, STR_Description:=Err.Description
Resume exit_proc
End Sub