22/08/2018, 10:48

Xây dựng và sử dụng thủ tục lưu trữ SQL/PL với Visual Studio 2005

Ở bài này, chúng ta sẽ xem xét 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. Chú ý: Để 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 ...

Ở bài này, chúng ta sẽ xem xét 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.

Chú ý:

Để 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 STAFF, chọn cột DEPT, chuyển nó tới danh sách chọn bằng cách kích vào Add column to selected list () và ấn OK.

 

Các add-in IBM bổ sung cho Visual Studio 2005 cung cấp cho bạn một số thành phần độc nhất, nâng cao khả năng phát triển ứng dụng nhanh chóng (RAD) trong Visual Studio 2005 IDE. Khả năng biết được kiểu dữ liệu tham số là một trong số đó. Thực hiện chức năng này, bạn sẽ không bị lỗi sai trong chọn kiểu dữ liệu cho tham số đầu vào trong thủ tục lưu trữ đang xây dựng và giảm thiểu khả năng lỗi mã hoá.

Có một số thành phần DB2 9 RAD độc nhất khác cũng được tích hợp trong Visual Studio 2005, như chức năng xác định cột trong tạo bảng của IntelliSense, móc nối với DB2 schema bên dưới. Hay như IBM Output Message Pane, mô tả chi tiết hoạt động server dữ liệu DB2 và các thông báo lỗi ….

Procedure Parameters (các tham số thủ tục) của designer này có dạng như sau:

 

7, Xoá tham số DEPTNUMB bằng cách bấm chọn nó và kích nút Delete Parameter (). Đổi tên tham số DEPT thành DEPTNUMB.

Rõ ràng, bạn có thể chọn mô tả hoặc phát hiện tham số chính xác ngay lập tức. Sở dĩ chúng tôi muốn đưa ra các bước này là để minh hoạ cho bạn khả năng đa thành phần của designer.

8, Thu gọn các phần Procedure IdentificationProcedure Parameters bằng cách kích chuột lên biểu tượng (). Lúc này, designer có dạng:

9, Thay thế

select ROUTINENAME, ROUTINESCHEMA from SYSIBM.SYSROUTINES;

bằng 

select * from STAFF where dept = deptnumb;

Chú ý: Khi nhập lệnh mới này, bạn có thể tác động để IntelliSense móc nối với schema của server dữ liệu bằng cách đưa ra tên của schema trước tên bảng STAFF, và đưa tên schema, các tên bảng trước cột DEPT như hình bên dưới:

 

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ở rộng khả năng này cho cơ sở dữ liệu DB2 treen i5/OS hoặc z/OS, sử dụng kết nối DB2 Connect. Quá trình hoàn toàn tương tự.

1, Tạo một chương trình ứng dụng Visual Basic mới có tên CallMySPProject: vào File > New Project > Windows Application, chọn Visual Basic (có thể được đặt bên dưới Other Languages). Gõ tên dự án trong trường Name và bấm OK.

Chú ý: Không giống như các chương trình ứng dụng khác, chương trình ứng dụng này được xây dựng trong Visual Basic.NET.

2, Đảm bảo rằng khung nhìn Add Data Source đã được thể hiện trong IDE. Nếu chưa, ấn Shift+Alt+Delete hoặc chọn Data > Show Data Sources từ thanh menu.

3, Bấm chọn Add New Data Source trong cửa sổ Data Sources, chọn Database và bấm Next.

4, Chọn cơ sở dữ liệu SAMPLE từ danh sách xổ xuống “Which data connection should your application use to connect to the database?” (Kiểu kết nối dữ liệu nào ứng dụng sẽ sử dụng để kết nối tới cơ sở dữ liệu?).

5, Bấm chọn ô “Yes, include sensitive data in the connection string" (Sử dụng cả dữ liệu nhạy cảm trong xâu ký tự) và kích Next. (Giả sử bạn đang làm việc trên một máy kiểm tra riêng và chú ý rằng Visual Studio 2005 thu gọn trường Connection String một cách tự động).

6, Chấp nhận các thiết lập mặc định trên trang tiếp theo. Kích Next.

7, Mở rộng nút Stored Procedure, chọn thủ tục lưu trữ SELECTSTAFFBYDEPT và kích Finish.

Chú ý: Bước này hơi khác hơn một chút so với một số bài đã được giới thiệu trước đây. Chúng ta đang tạo ra một tập hợp dữ liệu từ thủ tục lưu trữ thay vì trực tiếp từ một bảng.

Bảng màu designer bây giờ tương tự như hình bên dưới. (Có thể bạn cần mở rộng SAMPLEDataSet một cách thủ công).

8, Kéo thủ tục lưu trữ SELECTSTAFFBYDEPT từ Data Sources rồi thả xuống WinForm của 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.

Bạn có thể dùng bất kỳ tham số hợp lệ nào cho mã số phòng ban trong bảng STAFF. Nếu đưa ra cho ứng dụng một số không có trong bảng STAFF, nó sẽ trả ra tập hợp rỗng.

Phần minh hoạ bên dưới đưa ra mã số phòng là 20 vào thủ tục lưu trữ SELECTSTAFFBYDEPT:

Tóm tắt

Trong bài này chúng tôi đã hướng dẫn các bạn cách dùng SQL/PL  designer để tạo thủ tục lưu trữ, trong đó một tham số đầu vào được dùng để thể hiện cột DEPT trong bảng STAFF. Chúng ta đã tham khảo một số thành phần nâng cao của SQL/PL. Và designer thực hiện thủ tục với IntelliSense móc nối lược đồ cơ sở dữ liệu cùng khả năng xuất/nhập tham số đầu vào từ bản thân bảng (cả hai đều giảm được thời gian thiết kết và giúp loại bỏ các lỗi tai hại). Cuối cùng là hoạt động của thủ tục lưu trữ trong chương trình ứng dụng được sử dụng như thế nào. Hy vọng bạn đọc đã có được đầy đủ thông tin cơ bản về xây dựng và sử dụng thủ tục SQL/PL trong Visual Studio 2005, làm cơ sở để tiếp tục tìm hiểu vấn đề chuyên sâu hơn trong các tài liệu nâng cao về sau.

0