Danh mục

Xử lý lỗi „3146‟ trong chương trình VB

Số trang: 2      Loại file: pdf      Dung lượng: 0.00 B      Lượt xem: 13      Lượt tải: 0    
Thư viện của tui

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (2 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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.
Nội dung trích xuất từ tài liệu:
Xử lý lỗi „3146‟ trong chương trình VB 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ảiquyế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ị đượcthô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 tinchi 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 StringDim nI As IntegerDim sTitle As StringsError = Determine whether or not this is a database errorIf DBEngine.Errors.Count > 0 ThenIf DBEngine.Errors(DBEngine.Errors.Count-1)._Number = Err.Number ThensTitle = Database ErrorFor nI = 0 To DBEngine.Errors.Count - 1sError = sError & DBEngine.Errors(nI) & vbCrLfNextsError = sError & vbCrLfEnd IfEnd IfIf sError = ThensTitle = Error add the error stringsError = sError & Err.description & vbCrLfEnd IfMsgBox sError, , sTitleLưu ý: nếu truy cập cơ sở dữ liệu bằng RDO, các bạn cần thay DBEngine.Errors trong đoạn mãtrên bằng rdoEngine.rdoErrors.Nhưng sửa chương trình không phải là cách duy nhất và cũng không phải là cách hay nhất trongmọi trường hợp. Chỉnh sửa chương trình là cần thiết cho những lần sau, nhưng nếu đang gấp haykhông thể gửi ngay chương trình cập nhật cho người dùng, bạn làm thế nào để xác định nguyênnhân lỗi. Ngay cả khi không có chương trình nguồn trong tay, bạn vẫn có thể xác định đượcnguyên nhân thực sự gây lỗi để tìm cách khắc phục.Để làm được điều đó, hãy hướng dẫn người dùng bật tính năng ODBC tracing trên máy kháchtheo các bước sau: Trước tiên gọi Control Panel, mở mục Administrative Tools rồi gọi Data Sources  (ODBC), chuyển sang thẻ Tracing và nhấn vào nút Start Tracing Now (xem hình). Hãy nhớ thư mục chứa tệp log để có thể xem chi tiết lỗi (tất nhiên bạn có thể đổi lạ i thư mục đó theo ý mình). Sau cùng, khi đã chạy lại ứng dụng để sinh lỗi 3146 và đọc thông tin chi tiết lỗi từ tệp  log, bạn đừng quên quay lại ODBC Data Source Administrator để tắt tính năng tracing.

Tài liệu được xem nhiều: