Sử dụng cỏc biến dựng chung

Một phần của tài liệu Giao_trinh_SQL_server pptx (Trang 100 - 102)

Một biến dựng chung cú thể được sử dụng trong cỏc cõu lệnh SQL ở những vị trớ chỳng ta muốn hoặc được phộp đặt một hằng. Nhắc lại rằng những biến dựng chung cú một dấu hai chấm đặt trước nú khi sử dụng. Đõy là một vớ dụ trong đú chỳng ta sử dụng cỏc biến của Vớ dụ 3.1 như là những thành phần của một bộ được chốn vào trong quan hệ ĐƠNVỊ.

Vớ dụ 3.2: Trong Hỡnh 3.2 là một minh họa của một hàm C getDonvi nhắc người dựng cho mósố và tờn của một đơn vị, đọc trả lời và chốn bộ thớch hợp vào ĐƠNVỊ. Dũng (1) đến dũng (4) là những khai bỏo chỳng ta đó được học trong Vớ dụ 3.1. Chỳng ta bỏ qua cỏc lệnh của C yờu cầu đưa cỏc giỏ trị vào hai biến Mósố và Tờn. Sau đú, trong cỏc dũng (5) và (6) là một cõu lệnh

SQL nhỳng, đú là một cõu lệnh INSERT thụng thường. Lệnh này cú từ khúa EXEC SQL đi trước để chỉ ra rằng nú quả thực là một cõu lệnh SQL nhỳng chứ khụng phải là một cõu lệnh C sai ngữ phỏp. Bộ tiền xử lý được đề nghị trong Hỡnh 3.1 sẽ tỡm kiếm EXEC SQL để phỏt hiện những cõu lệnh phải được tiền xử lý.

Những giỏ trị được cỏc dũng (5) và (6) chốn vào khụng phải là cỏc hằng rừ ràng. Những giỏ trị xuất hiện trong dũng (6) là những biến dựng chung mà giỏ trị hiện thời của chỳng trở thành những thành phần của bộ được chốn.

Cựng với cõu lệnh INSERT cũn cú nhiều kiểu cõu lệnh SQL khỏc cú thể được nhỳng vào trong một ngụn ngữ chủ, chỳng sử dụng những biến dựng chung như một giao diện. Mỗi cõu lệnh nhỳng SQL cú cỏc từ khúa EXEC SQL đi trước trong chương trỡnh ngụn ngữ chủ và cú thể tham chiếu đến cỏc biến dựng chung trong vị trớ của cỏc hằng. Cõu lệnh SQL bất kỳ khụng trả về một kết quả (tức là, khụng phải là một truy vấn) cú thể được nhỳng. Những vớ dụ về những cõu lệnh SQL cú thể nhỳng được bao gồm những cõu lệnh xúa và cập nhật và những cõu lệnh để tạo, sửa, hoặc xúa những thành phần lược đồ chẳng hạn như cỏc bảng và cỏc khung nhỡn.

Void getDONVI() {

1) EXEC SQL BEGIN DECLARE SECTION;

2) INT Mósố INT, CHAR Tờn[15];

3) char SQLSTATE[6];

4) EXEC SQL END DECLARE SECTION;

/* Cỏc cõu lệnh C yờu cầu nhập dữ liệu cho Mósố và Tờn */ 5) EXEC SQL INSERT INTO ĐƠNVỊ(MósốĐV, TờnĐV) 6) VALUES(:Mó số,:Tờn) }

Hỡnh 3.2: Minh họa vớ dụ 3.2

Tuy nhiờn, những truy vấn select-from-where là khụng nhỳng được một cỏch trực tiếp vào trong một ngụn ngữ chủ, bởi vỡ “trở ngại khụng phự hợp”. Cỏc truy vấn đưa ra kết quả là những tập hợp cỏc bộ, trong khi khụng cú một ngụn ngữ chủ nào hỗ trợ kiểu dữ liệu tập hợp một cỏch trực tiếp. Do vậy,

SQL nhỳng phải sử dụng một trong hai kỹ thuật để kết nối kết quả của cỏc truy vấn với một chương trỡnh ngụn ngữ chủ.

1. Một truy vấn đưa ra một bộ đơn cú thể cú bộ đú được lưu trữ trong cỏc biến dựng chung, một biến cho mỗi thành phần của bộ. Để làm như vậy, chỳng ta sử dụng một dạng sửa đổi của cõu lệnh select-from-where được gọi là một select đơn-hàng (single-row select).

2. Cỏc truy vấn tạo ra nhiều hơn một bộ cú thể được thực hiện nếu chỳng ta khai bỏo một con trỏ cho truy vấn.Con trỏ duyệt qua tất cả cỏc bộ trong quan hệ trả lời, và mỗi bộ cú thể lần lượt được đặt vào trong những biến dựng chung và được xử lý bởi chương trỡnh ngụn ngữ chủ.

Chỳng ta sẽ xem xột lần lượt từng kỹ thuật một.

Một phần của tài liệu Giao_trinh_SQL_server pptx (Trang 100 - 102)