Lompat ke konten Lompat ke sidebar Lompat ke footer

Tutorial Cara Penggunaan BeginTrans, CommitTrans, RollbackTrans di VB6 (PART II)

Sebelum anda membaca artikel ini silahkan baca daluhu BeginTrans, CommitTrans, RollbackTrans di vb6 (Bagian I) disini karena ini merupakan lanjutannya. Selanjutnya saya akan membahas error yang menghasilkan error, misalnya sebuah error A yang ternyata menghasilkan error B, jadi kita tidak dapat mengetahui error A yang sebenarnya. Error ini biasanya akan terjadi jika kita menggunakan BeginTrans, CommitTrans, RollbackTrans, contoh kasus nya seperti ini :
Dalam sebuah form master terdapat TxtID, TxtName dan ini contoh sintak penyimpanan data :
Private Sub Cmd_Save_Click()
On Error GoTo Salah

   dim TempID as string
   dim TempName as string
   TempID = TxtID.Text

   TempName = TxtAddress.Text 
    con.BeginTrans    'save to table head
con.Execute "INSERT INTO TMASTER (ID,NAME) VALUES ('" & TempID & "','" & TempName & "')

con.CommitTrans   
    MsgBox "Data Tersimpan!", vbInformation, "Info"
   Exit Sub
Salah:

    con.RollbackTrans
    MsgBox Err.Number & " : " & Err.Description, vbExclamation, "Warning"
End Sub


Jika dilihat dari sintak diatas itu pasti akan error karena lihat yang dicetak merah (TxtAddress) tidak ada di dalam form Seharusnya pesan error yang ditampilkan adalah "Object required" (Object TxtAddress tidak ada di form), tapi karena ada con.RollbackTrans maka erronya malah menjadi "No transaction is active" (karena con.BeginTrans belum sempat diproses).Biasanya programmmer akan terkecoh dan terus mencari solusi error "No transaction is active"padahal error yang sebenarnya adalah "Object required". Maka dari itu saran saya adalah :
1. Selalu tempatkan con.BeginTrans di baris paling atas dari baris perintah perintah yang lain (atau tepat dibawah On Error Goto)
2.Mengunakan validasi IF dan SELECT CASE seperti pada contoh dibawah ini :
Private Sub Cmd_Save_Click()
On Error GoTo Salah

   Dim IsConError As Boolean
   dim TempID as string
   dim TempName as string
   TempID = TxtID.Text

   TempName = TxtAddress.Text 

    con.BeginTrans    'save to table head
   IsConError = True
con.Execute "INSERT INTO TMASTER (ID,NAME) VALUES ('" & TempID & "','" & TempName & "')
con.CommitTrans
IsConError = False   
    MsgBox "Data Tersimpan!", vbInformation, "Info"
   Exit Sub
Salah:

    Select Case IsConError
        Case True
            con.RollbackTrans
        Case Else
            MsgBox Err.Number & " : " & Err.Description, vbExclamation, "Warning"
    End Select

End Sub

Tags:error incorrect syntax near ' ', error incorrect format unknown tag, error cannot insert duplicate key row in object with unique index, error cannot insert the value null into column id table, error violation of primary key constraint cannot insert duplicate key in object, error could not find output table, error No transaction is active, error Object required

Posting Komentar untuk "Tutorial Cara Penggunaan BeginTrans, CommitTrans, RollbackTrans di VB6 (PART II)"