Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (179.2 KB, 2 trang )
Xử lý lỗi „3146‟ trong chương trình VB
(Post 13/10/2010) Lỗi run-time 3146 (ODBC Call failed) là một thông báo khá “tù mù”, vì
vậy nó xuất hiện trong khá nhiều diễn đàn VB. Khi được người sử dụng thông báo lỗi này,
lập trình viên không biết lỗi gì đã xảy ra với các thao tác cơ sở dữ liệu để có cách giải
quyết. Gốc của vấn đề là ở chỗ ODBC trả về một chuỗi các lỗi nhưng chương trình chỉ
hiển thị lỗi đầu tiên là 3146 "ODBC Call Failed".
Điều đầu tiên mà các lập trình viên thường nghĩ tới là tại sao chương trình không hiển thị được
thông báo lỗi cụ thể và cần phải sửa chương trình. Mặc dù cách làm rất đơn giản nhưng ít người
để ý (cách làm này đã có từ VB4). Lập trình viên cần duyệt Errors collection để lấy đủ thông tin
chi tiết trước khi hiển thị cho người dùng bằng cách thay câu lệnh cụt lủn MsgBox Err.Number
&" " & Err.Description trong phần bẫy lỗi bằng đoạn mã dưới đây:
Dim sError As String
Dim nI As Integer
Dim sTitle As String
sError = ""
' Determine whether or not this is a database error
If DBEngine.Errors.Count > 0 Then
If DBEngine.Errors(DBEngine.Errors.Count-1)._
Number = Err.Number Then
sTitle = "Database Error"
For nI = 0 To DBEngine.Errors.Count - 1
sError = sError & DBEngine.Errors(nI) & vbCrLf
Next
sError = sError & vbCrLf
End If
End If