error handling – chiến lược xử lý lỗi trong SQL server Xử lý lỗi là vấn đề không thể bỏ qua đối với các ngôn ngữ lập trình cũng như các phần mềm ứng dụng. Điều này cũng đúng đối với người lập trình cơ sở dữ liệu bằng ngôn ngữ SQL.Với vai trò là một chuyên viên lập trình cơ sở dữ liệu, bạn hãy trình bày chiến lược xử lý lỗi trong SQL Server bằng việc tìm hiểu và phân tích các vấn đề: Thông báo lỗi hệ thống và thông báo lỗi do người dùng định nghĩa trong SQL Server. Cài đặt mã nguồn đưa ra thông báo lỗi Bẫy lỗi và xử lý lỗi Một số ứng dụng có cài đặt Error Handling và ý nghĩa của việc xử lý lỗi trong các ứng dụng này
Trang 1Email: nguyenpnb27334@student-topica.edu.vn
Trang 2ĐỀ TÀI
Error Handling – Chiến lược xử lý lỗi trong SQL Server
Xử lý lỗi là vấn đề không thể bỏ qua đối với các ngôn ngữ lập trình cũng như các phần mềm ứng dụng Điều này cũng đúng đối với người lập trình cơ sở
dữ liệu bằng ngôn ngữ SQL
Với vai trò là một chuyên viên lập trình cơ sở dữ liệu, bạn hãy trình bày chiến lược xử lý lỗi trong SQL Server bằng việc tìm hiểu và phân tích các vấn đề:
- Thông báo lỗi hệ thống và thông báo lỗi do người dùng định nghĩa trong SQL Server
- Cài đặt mã nguồn đưa ra thông báo lỗi
- Bẫy lỗi và xử lý lỗi
- Một số ứng dụng có cài đặt Error Handling và ý nghĩa của việc xử lý lỗi trong các ứng dụng này
Trang 3PHẦN MỞ ĐẦU
Như các bạn đã biết bất kỳ một đơn vị nhỏ hay lớn nào phần Cơ Sở Dữ Liệu (CSDL) là phần quan trọng nhất
Tuy nhiên thì khi xây dựng, thiết kế, vận hành CSDL thì không thể trách khỏi những sai sót, các sự cố ngoài ý muốn, hay phát sinh các lỗi làm ảnh hưởng đến việc cung cấp thông tin chính xác cho người dùng
Vì thế với vai trò là một người lập trình, quản trị hệ thống bạn cần phải lưu tâm đến các vấn đề sau đây
- Thống kê các lỗi thường gặp và các giải pháp xử lý
- Cài đặt các thông báo lỗi làm sao cho phù hợp với hệ thống và người sử dụng
- Cài đặt mã nguồn thông báo lỗi tự động cho hệ thống
- Tìm kiếm các công cụ hỗ trợ cho việc xử lý các lỗi của hệ thống
- Tối ưu hóa hệ thống, hạn chế các sai sót, sự cố khi vận hành
- Cập nhật và kiểm tra hệ thống thường xuyên
Trang 4MỤC TIÊU TRÌNH BÀY
Thông báo lỗi hệ thống và thông báo lỗi do người dùng định nghĩa trong SQL Server
Cài đặt mã nguồn đưa ra thông báo lỗi
Bẫy lỗi và xử lý lỗi
Một số ứng dụng có cài đặt Error Handling và ý nghĩa của việc xử lý lỗi trong các ứng dụng này
1
2
3
4
Trang 5NỘI DUNG TRÌNH BÀY
Giới thiệu Error Handling
Cài đặt Error Handling trong SQL Sever
Một số ứng dụng có cài đặt Error Handling
Ý nghĩa của việc sử dụng Error Handling
1
4
4
Thông báo lỗi hệ thống và thông báo lỗi do người dùng định nghĩa trong SQL Server
Cài đặt mã nguồn đưa ra thông báo lỗi
Bẫy lỗi và xử lý lỗi
Một số ứng dụng có cài đặt Error Handling và ý nghĩa của việc xử lý lỗi trong các ứng dụng này
2
3
5
Trang 6Giới Thiệu Error Handling
Error Handling (Xử lý lỗi)
- Là tiến trình bắt các lỗi được tạo bởi chương trình mà bạn thiết lập và sau đó thực hiện các hành động thích hợp để thông báo cho người dùng, và để cho người quản trị xử lý.
- Trong SQL Sever chúng ta có thể thấy xử lý lỗi bằng các công cụ sau:
+ SQL Profiler hay SQL Server profiler có khả năng chụp tất cả các sự kiện hay hoạt động diễn ra trên một SQL Server và lưu lại dưới dạng file text rất hữu dụng trong
việc kiểm soát hoạt động của SQL Server công cụ này rất hữu ích cho DBA (Database Administration) theo dõi các câu lệnh TSQL(SQL, DDL, DML) truy cập từ ứng dụng
vào Database Engine Dựa vào đó DBA (Database Administration) có thể phân tích, đánh giá và cải thiện tốc độ xử lý Database.
+ SQL Server Extended Event là một hệ thống xử lý sự kiện chung cho các hệ thống máy chủ
+ TRY CATCH và các hàm RAISERROR (T-SQL): Được dùng để đưa ra các thông báo do SQL Sever quy định trong sys.messages hoặc chúng ta cũng có thể tự thiết lập
cho hệ thống của mình.
Trang 7Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.
1. Thông báo lỗi hệ thống ( System – definded error ) các lỗi quy định sẵn trong SQL Sever
Bảng lỗi của hệ thống
Truy xuất bằng câu lệnh : select * from sys.messages
Các thông số của 1 lỗi trong SQL Sever
+ Message_id: mã số duy nhất của một lỗi (mã số này không được trùng lặp nhau)
+ Language_id: mã số ngôn ngữ => vd: 1033 _ là mã ngôn ngữ Tiếng Anh.
( tham khảo thêm bảng language_id )
Severity: có các giá trị từ 0 – 25 thể hiện mức độ nghiêm trọng của lỗi được chia thành 3 phần.
+ 0 - 10 : Lỗi thông tin người dùng nhập vào sai
+ 11 - 16 : Được tạo bởi người dùng và có thể được người dùng sửa chữa.
+ 17 - 25 : Mức độ nghiêm trọng, cần thông báo ngay cho người quản trị hệ thống.
Is_event_logged: Có cần ghi vào log của Windows hay không? (giá trị 1/0)
Text: Mô tả nội dung của lỗi dựa trên mã ngôn ngữ hiển thị
Trang 8BẢNG LANGUAGE_ID
MÃ NGÔN NGỮ
Trang 9Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.
2 Thông báo lỗi do người dùng định nghĩa ( User – definded error ) tạo ra bởi người dùng
Tạo một thông báo lỗi
Trang 10Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.
Câu lệnh nào để hiển thị các thông báo lỗi đã được setup trong SQL?
CÂU HỎI TƯƠNG TÁC
CÂU HỎI:
TRẢ LỜI
Để hiển thị các thông báo lỗi đã được setup trong SQL ta có thể sử dụng câu lệnh
select * from sys.message
Trang 11Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.
Để cài đặt một thông báo lỗi trong SQL ta có thể sử dụng câu lệnh nào?
CÂU HỎI TƯƠNG TÁC
Trang 12CÀI ĐẶT MÃ NGUỒN ĐƯA RA THÔNG BÁO LỖI
+ @@error là một biến Global, nó cho ta biết được số của lỗi (number error).
+ @@error thường được sử dụng trong các phiên bản SQL trước phiên bản SQL Sever 2005 ( chủ yếu trong SQL Sever 2000 )
+ @@error thường được sử dụng sau 1 câu lệnh để phát hiện lỗi.
Tìm hiểu @@error là gì?
Trang 13CÀI ĐẶT MÃ NGUỒN ĐƯA RA THÔNG BÁO LỖI
+ Sử dụng trong các câu lệnh Insert, Delete, Update, Select….
+ Gán @@error vào 1 biến tạm, khi cần dùng sẽ gọi biến tạm đó
+ Nếu không có lỗi @@error = 0, Nếu có lỗi thì @@error sẽ cho giá trị khác 0 và hiển thị message_id đó.
Cách sử dụng @@error
Trang 14CÀI ĐẶT MÃ NGUỒN ĐƯA RA THÔNG BÁO LỖI
Ưu điểm & nhược điểm của @@Error
CÂU HỎI TƯƠNG TÁC
Ưu điểm: có thông báo màu giúp người sử dụng dể nhận biết
- Thông báo màu đỏ là do hệ thống quy định
- Thông báo màu đen là do người dùng cài đặt
TRẢ LỜI
Nhược điểm: bẫy lỗi @@Error có thể lặp đi lặp lại, có thể tiềm ẩn các lỗi, dòng code không dể hiểu như TRY…CATCH
Trang 15BẨY LỖI & XỬ LÝ LỖI
- Trong SQL Sever bẫy lỗi và xử lý lỗi là quá trình quan trọng, nó giúp các câu lệnh được rõ ràng hơn
- Trong các phiên bản SQL Sever 2005 trở lên về sau thì người ta sử dụng TRY…….CATCH nhiều hơn
- TRY……….CATCH dùng để bẩy lỗi trên một câu lệnh hoạc nhiều câu lệnh và có thể lồng vào nhau
Trang 16BẨY LỖI & XỬ LÝ LỖI
Trang 17Hạn chế của Try…Catch
CÂU HỎI TƯƠNG TÁC
CÂU HỎI:
TRẢ LỜI
Không bắt được các lỗi biên dịch.
Nếu kết nối bị lỗi thì Try Catch không có tác dụng thực thi
Trang 18MỘT SỐ ỨNG DỤNG CÓ CÀI ĐẶT
ERROR HANDLING
- Ứng dụng Calculator trong windows
- Action đổi tên file trong windows
Trang 19MỘT SỐ ỨNG DỤNG CÓ CÀI ĐẶT
ERROR HANDLING
Ý nghĩa của việc xử lý lỗi trong 2 ứng dụng trên là gi?
CÂU HỎI TƯƠNG TÁC
CÂU HỎI:
TRẢ LỜI
- Trong ứng dụng calculator: đưa ra thông báo lỗi khi thực hiện những phép tính hoặc nhập các số để thực hiện phép tính không đúng với quy tắc toán học.
- Trong Windows: đưa ra thông báo lỗi theo quy định của Microsoft Vì trong windows đã quy định chỉ
sử dụng tên này cho các driver thiết bị của hệ thống.
Trang 20KẾT LUẬN
• Bẫy lỗi và xử lý lỗi là việc rất quan trọng trong lập trình.
• Việc xử lý lỗi trong SQL rất quan trọng khi kết hợp với các ứng dụng thực tế
• Có nhiều cách để bẫy lỗi ( sử dụng Try Catch, @@error ) nhưng hiện nay thông dụng nhất, dễ sử dụng nhất và dễ bảo trì code nhất là sử dụng câu lệnh Try Catch