Xây dựng và sử dụng thủ tục lưu trữ SQL/PL với Visual Studio 2005
Hỏi: Cách tạo thủ tục lưu trữ sử dụng trình thiết kế SQL/PL Stored Procedure và
áp dụng chúng trong một ứng dụng WinForm đơn giản làm thế nào?
Đáp:
Để thực hiện được các bước sau trong bài này, trước hết bạn phải tạo một cơ sở dữ
liệu SAMPLE (mẫu) bằng cách nhập lệnh db2sampl từ cửa sổ lệnh Command
Promp của hệ điều hành. Đồng thời bạn cũng phải thêm một kết nối tới cơ sở dữ liệu này trong
bảng ảo Server Explorer.
Xây dựng thủ tục SQL/PL sử dụng designer
Để xây dựng thủ tục lưu trữ SQL/PL, chọn ra các nhân viên của một phòng ban nào đó dựa trên
công cụ designer DB2 9 SQL/PL Stored Procedure trong Visual Studio 2005, thực hiện theo các
bước sau:
1, Mở rộng nút cơ sở dữ liệu SAMPLE trong Server Explorer, chọn thư mục Procedures, sau đó
là Add New SQL/PL Procedure with Designer.
2, Hộp thoại Procedure designer mở. Gọi thủ tục SELECTSTAFFBYDEPT trong khu vực
Procedure identification của designer này. Bạn có thể lựa chọn mô tả tên schema bên dưới hoặc
không. Thường trình này sẽ được tạo với một comment mô tả nó.
Bạn có thể sử dụng các thiết lập của mô hình Debug (trình gỡ rối), hoặc đặt chế độ Allow trong
ô “Debug mode” nếu muốn sử dụng các chức năng xử lý lỗi tích hợp của IDE cho thường trình
này.
3, Trong cửa sổ Procedure Parameters, thêm một tham số vào thường trình bằng cách click lên
nút Add parameter ().
4, Bấm chọn trường Name và thay đổi tên cho tham số này thành DEPTNUME.
5, Kích vào nút Import Parameters () để biết kiểu dữ liệu của tham số dùng để truy vấn thông
tin nhân viên trong bảng STAFF, dựa theo cột DEPT.
6, Cửa sổ Import mở. Bạn có thể dùng tên Schema để lọc các bảng trong cửa sổ, tìm bảng
10, Xây dựng thủ tục lưu trữ này bằng cách ấn Ctrl+S, sau đó là Yes.
Còn nhiều thành phần khác nữa trong designer SQL/PL Stored Procedure, nhưng vượt ra ngoài
phạm vi của bài này. Bạn nên xây dựng một số thường trình khác nếu muốn tìm hiểu sâu hơn khả
năng của công cụ tuyệt vời và độc nhất này.
11, Refresh lại bảng ảo của thư mục Procedures trong Server Explorer bằng cách kích chuột lên
folder này và chọn Refresh nếu thấy cần.
12, Kiểm tra lại thủ tục lưu trữ với giá trị 20 cho tham số DEPTNUMB như sau:
a. Kích phải chuột lên thủ tục SELECTSTAFFBYDEPT, chọn Run. Cửa sổ Run Options
mở ra.
b. Bỏ chọn trong ô Null.
c. Kích chọn Value và nhập 20 vào ô.
d. Ấn Run.
Các bước này được minh hoạ như bên dưới:
Chú ý rằng, khi chạy thủ tục sử dụng add-in IBM trong Visual Studio 2005, bạn có thể sử dụng
các tuỳ chọn cho tiếng trình pre-run (chạy trước) hoặc post-run (chạy bổ sung). Ví dụ, có thể bạn
muốn sử dụng một script pre-run để tạo và đưa dữ liệu vào bảng, một script post-run để xoá
bảng. Lệnh Commit sau khi chạy script sẽ kiểm tra độ an toàn của mã thường trình trong Visual
Source …. Ngoài ra, trong lần tiếp theo, thủ tục lưu trữ sẽ ghi lại giá trị tham số được nhập để
việc chạy thường trình dễ dàng hơn.
Kết quả được trả về trong lưới dữ liệu DB2 và tương tự như sau:
Lưới dữ liệu DB2 trong Visual Studio 2005 là thành phần giàu tính năng với nhiều hoạt động
khác nhau. Như xuất, nhập dữ liệu (gồm cả định dạng XML), dự án, giới hạn, lọc mức hàng, sắp
xếp ….
Sử dụng thủ tục lưu trữ SQL/PL trong ứng dụng
Chúng ta đã có được thủ tục DB2 SQL/PL, bây giờ là tới nhiệm vụ sát nhập nó vào ứng dụng của
bạn.
Chú ý: Trong bài, chúng tôi chỉ giới thiệu cách xây dựng thủ tục lưu trữ trên server dữ liệu DB2
chạy trong hệ điều hành Linux, UNIX hay Windows. Nhưng bạn hoàn toàn có thể dễ dàng mở
bạn. Nó sẽ tự động thêm một data grid và các phần công cụ tương tự như sau:
Bạn có thể thấy rằng, hai mảnh công cụ khác nhau được tự động tạo saukhi thực hiện chức năng
này.
9, Kích chọn lên menu kéo xuống ở bên phải công cụ Fill, chọn Label.
Chú ý: Nếu không có thực đơn kéo xuống nào bên cạnh Fill, kích chuột vào Fill, thực đơn sẽ
xuất hiện.
Thành phần toolStripLabell (trong IDE có thể được đặt tên khác đi một chút) xuất hiện:
10, Kích phải chuột lên đối tượng toolStripLabel1, chọn Properties, sau đó thay đổi từ dạng
Text sang Department Number.
11, Tạo một trường mô tả tham số đầu vào cho thủ tục lưu trữ bằng cách kích vào hộp Fill xổ
xuống và chọn Textbox.
12, Kích đúp vào Fill, bạn sẽ thấy tất cả mã đã được tạo:
Bạn có thể thấy, biến DEPTNUMB được tự động xác định kích thước (DIM) trong Visual Studio
2005.
13, Thay đổi mã sau:
Dim DEPTNUMB As Object = New Object
thành
Dim DEPTNUMB As Object = ToolstripTextBox1.Text
14, Ấn F5 để xây dựng ứng dụng. Chương trình ứng dụng mở ra.
15, Nhập mã số phòng ban hợp lệ cho bảng STAFF trong trường Department Number rồi ấn
Fill. WinForm sẽ đưa giá trị tham số trong trường Department Number vào thủ tục lưu trữ
SELECTSTAFFBYDEPT và đưa kết quả vào data grid.