Video: Hướng dẫn fix lỗi không thể kết nối tới SQL Server (cannot connect to... ITExpress.vn) 2025
SQLSTATE xác định một số lượng lớn các điều kiện bất thường trong SQL. SQLSTATE là một chuỗi năm ký tự, trong đó chỉ có chữ hoa A đến Z và các chữ số từ 0 đến 9 là các ký tự hợp lệ. Chuỗi năm ký tự được chia thành hai nhóm: một mã lớp hai ký tự và một mã lớp con ba ký tự.
Mã lớp giữ một trạng thái sau khi hoàn thành một câu lệnh SQL. Trạng thái đó có thể cho thấy thành công của tuyên bố, hoặc một trong một số loại chính các điều kiện lỗi. Mã phân lớp cung cấp thêm chi tiết về việc thực hiện cụ thể của câu lệnh.
Tiêu chuẩn SQL định nghĩa bất kỳ mã lớp nào bắt đầu với chữ A đến H hoặc các chữ số từ 0 đến 4; do đó, các mã lớp có nghĩa là cùng một điều trong bất kỳ thực hiện. Các mã lớp bắt đầu bằng chữ cái I đến Z hoặc các chữ số từ 5 đến 9 được để lại cho các nhà thực hiện xác định vì đặc tả SQL không thể tiên đoán mọi điều kiện có thể xảy ra mọi việc thực hiện.
Tuy nhiên, các nhà thực hiện nên sử dụng các mã lớp không chuẩn này càng ít càng tốt để tránh các vấn đề di chuyển từ một DBMS này sang một DBMS khác. Lý tưởng nhất là các nhà thực hiện nên sử dụng các mã tiêu chuẩn trong hầu hết thời gian và các mã không chuẩn chỉ trong những trường hợp bất thường nhất.
Mã lớp là 00 cho biết hoàn thành thành công. Mã lớp 01 có nghĩa là câu lệnh đã thực hiện thành công nhưng đã tạo ra một cảnh báo. Mã lớp 02 chỉ ra một điều kiện không có dữ liệu. Bất kỳ mã lớp SQLSTATE nào khác với 00, 01, hoặc 02 chỉ ra rằng câu lệnh đã không thực thi thành công.
Bởi vì SQLSTATE cập nhật sau mỗi thao tác SQL, bạn có thể kiểm tra nó sau khi mỗi câu lệnh thực hiện. Nếu SQLSTATE chứa 00000 (hoàn tất thành công), bạn có thể tiến hành thao tác tiếp theo. Nếu nó có chứa bất cứ điều gì khác, bạn có thể muốn chi nhánh ra khỏi dòng chính của mã của bạn để xử lý tình hình. Mã lớp cụ thể và mã lớp con mà SQLSTATE chứa xác định những hành động nào bạn nên làm.
Để sử dụng SQLSTATE trong một chương trình ngôn ngữ mô đun, hãy bao gồm một tham chiếu đến nó trong các định nghĩa thủ tục của bạn, như ví dụ dưới đây:
THỦ TỤC NUTRIENT (SQLSTATE,: tên thực phẩm CHAR (20),: calo SMALLINT,: protein decimal (5, 1),: chất béo DECIMAL (5, 1),: carbo Đ DECC ĐIỂM (5, 1)) THỰC PHẨM CHÈN THỰC PHẨM (FoodName, Calorie, Protein, Chất béo, Carbohydrate) GIÁ TRỊ (: foodname,: calories,: protein, chất béo, carbo);
Tại vị trí thích hợp trong chương trình ngôn ngữ thủ tục của bạn, bạn có thể đặt các giá trị sẵn có cho các tham số (có thể bằng cách thu thập chúng từ người dùng) và sau đó gọi thủ tục.Cú pháp của hoạt động này thay đổi từ ngôn ngữ này sang ngôn ngữ khác, nhưng có vẻ như sau:
foodname = "Okra, boiled"; calo = 29; protein = 2. 0; mỡ = 0,3; carbo = 6. 0; NUTRIENT (tiểu bang, thực phẩm, calo, protein, chất béo, carbo);
Trạng thái của SQLSTATE được trả về trong trạng thái biến. Chương trình của bạn có thể kiểm tra biến này và thực hiện hành động thích hợp dựa trên nội dung của biến.