- Xóa nhầm phần đóng của chú thích (comment)
- Xóa nhầm dấu kết thúc chuỗi (chuỗi đơn hoặc chuỗi kép)
- Thêm dư hoặc chưa escape ký tự nháy đơn hoặc nháy kép trong nội dung chuỗi
- Escape sai ký tự quy định do thừa dấu \ trong chuỗi (MySQL có những ký tự sau có thể đi kèm với dấu \ là: 0, ', ", \, b, n, r, t, Z, %, _)
Và công việc không lấy gì phức tạp khi ta phải "soi" một đoạn mã chừng < 1000 dòng. Nếu phải "soi" đoạn mã chừng 10.000 dòng, 100.000 dòng hay thậm chí cả triệu dòng thì sao.
Rắc rối ở đây trước tiên là dữ liệu quá lớn, việc dùng ứng dụng(NotePad++) mở những đoạn mã khổng lồ sẽ có thể làm treo máy. Khi mở ra rồi thì ta sẽ làm gì nào, "soi" bằng "niềm tin" chăng ? Tất nhiên chúng ta không thể dùng mắt thường mà tìm ra lỗi được. Chính vì vậy mình có phát triển một công cụ nhỏ, giúp các bạn yêu MySQL có thể sử dụng để kiểm tra cú pháp những đoạn mã SQL lớn.
Giao diện và cài đặt
Ứng dụng này được viết dựa trên nền tảng .NET, cần phải cài .NET 2.0 trước khi sử dụng (bạn có thể tải tại đây). Tải ứng dụng tại đây.
Cách sử dụng
Nắm kéo tập tin cần kiểm tra và thả vào ứng dụng.
Nguyên tắc hoạt động
Ứng dụng sẽ quét từng dòng mã để xử lý tránh việc đọc toàn bộ mã và bộ nhớ sẽ gây "treo" máy.
Trong quá trình quét ứng dụng kiểm tra những lỗi sau:
- Có mở chuỗi nhưng chưa đóng (cả đơn cả kép)
- Có mở comment nhưng chưa đóng
- Sử dụng sai ký tự escape \ (escape không đúng ký tự hoặc escape nằm cuối dòng)
- Ứng dụng sẽ bỏ qua việc kiểm tra hợp lệ cú pháp SELECT, FROM, WHERE của đoạn mã, nghĩa là bạn có thể ghi SELECT SELECT vẫn không sai
Thông báo lỗi
Khi có một lỗi bất kỳ xảy ra, ứng dụng sẽ dừng và xuất thông báo lỗi. Thông báo sẽ đi kèm với số thứ tự dòng phát sinh lỗi, đối với những lỗi quên đóng chuỗi / comment thì dòng phát sinh lỗi là dòng bắt đầu mở chuỗi / comment
Một số thông báo lỗi:
Multiline comment does not close. Comment starts at line: X là chưa đóng comment, comment được mở tại dòng X
Single quote string does not close. String starts at line: X là chưa đóng chuỗi đơn, chuỗi được mở tại dòng X
Double quotes string does not close. String starts at line: X là chưa đóng chuỗi kép, chuỗi được mở tại dòng X
Invalid character \\X là sử dụng ký tự escape sai, ký tự sai là X
Unexpected escape character là ký tự escape \ không đúng quy định do nằm cuối dòng thì phía sau không còn ký tự nào nữa.
Khuyết điểm
- Hiện tại chỉ đọc theo dòng với những kiểu kết dòng bằng ký tự \r\n(Windows) chưa hỗ trợ kiểu kết dòng bằng ký tự \n (Linux, Unix)
- Chưa có những tùy chọn nâng cao chỉ định đọc từ dòng N -> M
Các bạn sử dụng và vui lòng góp ý để hoàn thiện ứng dụng.
Không có nhận xét nào:
Đăng nhận xét