Xử lý cỏc lệnh

Một phần của tài liệu Giáo trình ngôn ngữ SQL pps (Trang 138 - 140)

Ở cuối của hỡnh 3.18, một bản ghi lệnh cú handle là execStat đó được tạo ra. Tuy nhiờn bản ghi này vẫn chưa được nối với lệnh SQL. Tiến trỡnh kết nối và thực hiện cỏc lệnh SQL với cỏc handle tương tự như SQL động được mụ tả trong phần 3.1.10. Ở đõy, chỳng ta kết hợp văn bản của một lệnh SQL với một “ biến SQL” bằng cỏch sử dụng PREPARE và sau đú thực hiện nú bằng cỏch sử dụng EXECUTE.

Tỡnh trạng trong CLI hoàn toàn tương tự nếu chỳng ta nghĩ về “ biến SQL” như là một handle lệnh. Cú một hàm

SQLPrepare (sh, st, sl), nú lấy: 1. Một handle lệnh sh

2. Một biến trỏ đến một lệnh SQL st, và

3. Một độ dài sl cho xõu ký tự do st chỉ đến. Nếu chỳng ta khụng biết độ dài, một hằng được định nghĩa SQL_NTS yờu cầu SQLPrepare tự tớnh

nú từ xõu. Cú thể là xõu là một “xõu kết thỳc bằng null” và SQLPrepare kiểm tra nú cho đến khi gặp dấu hết xõu ‘\0’ là đủ.

Hiệu quả của hàm này là chuẩn bị để cho lệnh được handle sh trỏ đến bõy giờ biểu thị lệnh SQL cụ thể st.

Một hàm khỏc

SQLExecute(sh)

làm cho lệnh do sh trỏ đến được thực hiện. Đối với nhiều dạng lệnh SQL, chẳng hạn như cỏc lệnh chốn hoặc cỏc lệnh xúa, hiệu quả của việc thực hiện lệnh này trờn cơ sở dữ liệu là hiển nhiờn. Khi lệnh SQL do sh tham chiếu đến là một truy vấn, hiệu quả của lệnh kộm rừ ràng hơn. Như chỳng ta sẽ thấy trong phần 8.4.3, cú một con trỏ ẩn cho lệnh này, con trỏ đú là một phần của chớnh bản ghi lệnh. Về nguyờn tắc lệnh sẽ được thực hiện, vỡ vậy chỳng ta cú thể tưởng tượng rằng tất cả cỏc bộ của trả lời đang nằm ở một nơi nào đú sẵn sàng để được truy cập. Chỳng ta cú thể lấy ra cỏc bộ, mỗi lần một bộ bằng cỏch sử dụng con trỏ ẩn giống như chỳng ta làm việc với cỏc con trỏ thật trong cỏc phần 3.1 và 3.2.

Vớ dụ 3.19: Chỳng ta hóy tiếp tục với hàm HangLuong ở vớ dụ 3.18. Hai lời gọi hàm sau đõy sẽ liờn kết truy vấn SELECT Luong FROM NHANVIEN với lệnh do handle exectStat trỏ đến:

11) SQLPrepare(execStat, “SELECT Luong FROM NHANVIEN “, SQL_NTS);

12) SQLExecute(execStat) ;

Hai lệnh này cú thể xuất hiện ngay sau dũng 10) của hỡnh 3.18. Nhớ lại rằng SQL_NTS yờu cầu SQLPrepare xỏc định độ dài của xõu kết thỳc bằng null do đối số thứ hai của nú tham chiếu đến.

Giống như với SQL động, cỏc bược chuẩn bị và thực hiện cú thể được tổ hợp thành một nếu chỳng ta sử dụng hàm SQLExecDirect. Một vớ dụ về tổ hợp cỏc dũng 110 và 12) như sau:

SQLExecDirect(execStat, “SELECT Luong FROM NHANVIEN “, SQL_NTS);

Một phần của tài liệu Giáo trình ngôn ngữ SQL pps (Trang 138 - 140)

Tải bản đầy đủ (DOC)

(178 trang)
w