NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 6

157 474 0
NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN - - GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH VISUAL BASIC (TÀI LIỆU LƯU HÀNH NỘI BỘ) ĐÀ NẴNG, 2014 MỤC LỤC Giới thiệu visual basic 6.0 1.1 Làm việc với môi trường lập trình Visual basic 1.2 Thuộc tính phương thức kiện 1.3 Làm việc với đề án 1.4 Làm việc với nhiều đề án 13 Làm việc với điều khiển 14 2.1 Các loại điều khiển 14 2.2 Các điều khiển nội 16 2.3 Các điều khiển Mới 19 Nhập môn lập trình 20 3.1 Chuẩn lập trình (Coding convention) 20 3.2 Thiết kế trước viết chương trình 29 3.3 Các thao tác thông dụng cửa sổ Code 30 3.4 Biến kiểu liệu 31 3.5 Hàm thủ tục 38 3.6 Cấu trúc điều khiển 38 3.7 Gỡ rối chương trình 41 3.8 Bẫy lỗi 42 Lập trình xử lý giao diện 43 4.1 Menu 43 4.2 Hộp thoại 44 4.3 Thanh công cụ (ToolBar) 45 4.4 Thanh trạng thái 45 4.5 Xử lý chuột bàn phím 46 Xử lý tập tin 48 5.1 Mô hình FSO (File System Object model) 48 5.2 Xử lý tập tin với dòng lệnh hàm I/O cổ điển 48 5.3 Các điều khiển hệ thống tập tin 50 5.4 Điều khiển richtextbox 51 Sử dụng DLL Windows API 53 6.1 DLL cấu trúc Windows 53 6.2 WIN API 54 6.3 Sử dụng API 54 6.4 Dùng API khai thác khả Multimedia 57 Thêm trợ giúp vào ứng dụng 67 7.1 Thêm hỗ trợ cho Help 67 7.2 Thêm hỗ trợ cho WHAT’S THIS HELP 68 7.3 Cung cấp help với ứng dụng 68 Lập trình hướng đối tượng 70 8.1 Giới thiệu đối tượng 70 8.2 Biến đối tượng 77 8.3 Tập hợp 83 8.4 Biểu mẫu MDI 86 Những khái niệm CSDL 89 9.1 Cơ sở liệu gì? 89 9.2 Tạo trình thiết kế môi trường liệu 94 9.3 Sử dụng điều khiển liệu để tạo giao diện người sử dụng 95 10 Các đối tượng truy cập liệu 103 10.1 Sử dụng mô hình đối tượng DAO 103 10.2 Sử dụng DAO để làm việc với liệu 104 10.3 Sử dụng đối tượng Field để thao tác với trường 107 10.4 Sửdụng phương thức duyệt với đối tượng Recorset 107 10.5 Tìm kiếm liệu Recordset bảng 111 10.6 Tạo đối tượng để thao tác cấu trúc CSDL 114 10.7 Làm việc với tài liệu nơi chứa CSDL 120 10.8 Tạo sử dụng thuộc tính hiệu chỉnh đối tượng DataBase 121 11 Thiết lập báo cáo Xuất thông tin 123 11.1 Sử dụng thiết kế DataReport 123 11.2 Sử dụng Microsoft Access để làm báo cáo 126 11.3 Sử dụng Crystal report để lập báo cáo 128 12 Truy cập sở liệu với lớp 131 12.1 Làm việc với lớp đối tượng 131 12.2 Tạo Intance bội cho biểu mẫu 137 12.3 Tạo lớp cần sử dụng liệu 139 13 Đối tượng liệu ActiveX 147 13.1 Xây dựng ứng dụng Visual basic với ADO 147 13.2 Sử dụng dịch vụ liệu từ xa ADO 152 Ngôn ngữ lập trình Visual Basic 6.0 GIỚI THIỆU VISUAL BASIC 6.0 1.1 1.1.1 LÀM VIỆC VỚI MÔI TRƯỜNG LẬP TRÌNH TRONG VISUAL BASIC TÌM HIỂU CÁC PHẦN CỦA IDE IDE tên viết tắt môi trường phát triển tích hợp (Inegreated Development Enviroment) IDE nơi tạo chương trình VB IDE VB nơi tập trung menu, công cụ cửa sổ để tạo chương trình Mỗi phần IDE có tính anhe hưởng đến hoạt động lập trình khác Thanh menu cho phép bạn tác động quản lý trực tiếp toàn ứng dụng Thanh công cụ cho phép truy cập chức menu qua nút công cụ Các biểu mẫu (Form) - khối xây dựng chương trình Visual basic - xuất cửa sổ form Hộp công cụ để thêm điều khiển vào biểu mẫu đề án Project explorer hiển thị đề án mà bạn làm thành phần đề án Bạn duyệt cài đặt thuộc tính điều khiển, biểu mẫu module cửa sổ property Cuối cùng, bạn bố trí xem xét nhiều biểu mẫu hình thông qua cửa sổ form layout 1.1.2 THÊM VÀ XOÁ CÁC THANH CÔNG CỤ TRONG IDE CỦA VISUAL BASIC Thanh công cụ tập hợp nút bấm mang biểu tượng chứa thường đặt menu Các nút đảm nhận chức thông dụng cấu trúc menu Visual basic Thanh công cụ hửu ích, thay phải chọn qua menu menu con, ta nhấn nút bấm công cụ để gọi chức tương tự menu Sử dụng công cụ debug: Thanh công cụ debug dùng để kiểm tra chương trình giải lỗi xảy Khi gỡ rối chương trình, ta làm số việc chạy dòng lệnh chương trình, kiểm tra giá trị biến, dừng chương trình điểm nghi ngờ điều kiện Sử dụng công cụ Edit: Thanh công cụ Edit dùng để viết chương trình cửa sổ code Các tính công cụ Edit tương tự tính khác menu edit Bạn Cut, Paste văn Ngôn ngữ lập trình Visual Basic 6.0 Một tính lý thú IDE công cụ Edit dùng tính Coplete Word, tự động hoàn tất từ khoá Tính Complete Word hữu ích để tránh lỗi cú pháp Sử dụng công cụ Form Editor: Thanh công cụ form editor dùng để kéo giãn, di chuyển xếp điều khiển biểu mẫu Thanh công cụ Form editor có tính menu Format Sử dụng công cụ chuẩn(Standard): Là công cụ trọng yếu IDE Thanh công cụ chuẩn cung cấp nhiều tính menu file, Project, Debug, Run 1.1.3 THÊM CÁC ĐIỀU KHIỂN VÀO HỘP CÔNG CỤ Hộp công cụ bảng chứa điều khiển ta thiết kế giao diện người sử dụng cách chọn điều khiển từ hộp công cụ đưa chúng vào biểu mẫu Một số điều khiển có sẵn Visual basic gỡ bỏ khỏi hộp công cụ Một số khác nằm bên Visual basicvà chứa tập tin mà có phần mở rộng ocx Các điều khiển thêm vào gỡ bỏ khỏi công cụ Chúng ta trở lại chi tiết loại điều khiển Visual basic chương riêng 1.1.4 ĐỊNH HƯỚNG THÔNG QUA CỬA SỔ FORM VÀ CODE Nếu điều khiển khối bê tông mà ta tập hợp ứng dụng biểu mẫu móng để ta xây dựng khối Các biểu mẫu chứa cửa sổ Thiết kế biểu mẫu Ta làm việc cửa sổ để thêm điều khiển vào biểu mẫu Đối với cửa sổ thiết kế mẫu, ta mở cửa sổ code Cửa sổ code nơi ta viết đoạn chương trình chạy bên biểu mẫu Ta mở cửa sổ code cách nhấn đúp lên biểu mẫu điều khiển, chọn code từ menu 1.1.5 QUẢN LÝ ỨNG DỤNG VỚI PROJECT EXPLORER Project explorer Visual basic giúp quản lý định hướng nhiều đề án Visual basic cho phép tổ chức nhiều đề án nhóm gọi project group Ta lưu tập hợp đề án Visual basic thành tập tin nhóm đề án Các tập tin có phần mở rộng là.vbg 1.1.6 CỬA SỔ PROPERTIES Mỗi thuộc tính có nhiều giá trị Cửa sổ properties giúp bạn xem sửa đổi điều khiển thuộc tính điều khiển ActivateX chương trình 1.1.7 HIỂN THỊ IDE Ta xem IDE Visual basic cách: MDI SDI Hiển thị kiểu MDI(Multiple document interface) cho phép trình bày tất cửa sổ thành phần IDE cửa sổ chứa cửa sổ lớn Trái lại thị SDI (single document interface), cửa sổ thành phần hiển thị cách độc lập với Không có cửa sổ để chứa thống thành phần Chuyển đổi từ hiển thị MDI sang SDI - Chọn Tools\option\ - Trên tang Advance, chọn hộp đánh dấu SDI development Enviroment; nhấn OK IDE Visual basic định lại cấu hình cho hiển thị SDI lần khởi động tiếp sau Visual basic - Nhấn OK, thoát khởi động lại Visual basic 1.1.8 TRỢ GIÚP Không làm chủ ngôn ngữ lập trình Visual basic, bạn cần phải sử dụng thục môi trường Visual basic hiểu thông điệp mà Visual basic gửi Microsoft cung cấp hệ thống trợ giúp tốt cho công cụ phát triển ứng dụng Trợ giúp nhạy với ngữ cảnh Tại vị trí Visual basic, bạn nhấn phím F1, nút trợ giúp Nó kích hoạt hệ thống trợ giúp Visual basic, nơi giải thích đưa lời khuyên, đoạn chương trình mẫu Ngôn ngữ lập trình Visual Basic 6.0 Visual basic có hệ thống trợ giúp hệ thông thư viện MSDN sử dụng rộng rãi cho công cụ phát triển Microsoft để cung cấp truy cập đến sổ tay hướng dẫn sử dụng sản phẩm trực tuyến 1.2 1.2.1 THUỘC TÍNH PHƯƠNG THỨC VÀ SỰ KIỆN ĐỐI TƯỢNG Trong VB, đối tượng thành phần tạo nên giao diện người sử dụng cho ứng dụng Các điều khiển đối tượng Những nơi chứa (container) biểu mẫu(form), khung(frame), gay hộp ảnh (picture box) đối tượng VB hỗ trợ cách lập trình tương đối mới, lập trình hướng đối tượng (Object Oriented Programming) Trong lập trình cổ điển, ta có kiểu lập trình theo cấu trúc Nếu ứng dụng thiết kế để giải vấn đề lớn, lập trình viên chia thành nhiều vấn đề nhỏ viết đoạn chương trình nhỏ để giải riêng Với lập trình hướng đối tượng, lập trình viên chia nhỏ vấn đề cần giải quyếtthành đối tượng Từng đối tượng có đời sống riêng Nó có đặc điểm mà ta gọi thuọcc tính chức riêng biệt mà ta gọi phương thức lập trình viên cần đưa thuộc tính phơưng thức mà đối tượng cần thể 1.2.2 THUỘC TÍNH Nói cách đơn giản, thuộc tính mô tả đối tượng Mỗi đối tượng cộng có thuộc tính mô tả đối tượng Biểu mẫu điều khiển có thuộc tính Thậm chí hình máy in đối tượng cho phép can thiệp lúc thi hành có thuộc tính Mặc dù đối tượng có thuộc tính khác nhau, số thuộc tính thông dụng cho hầu hết điều khiển.(bạn xem toàn thuộc tính điều khiển cách chọn vào điều khiển mở cửa sổ PROPERTIES Visual Basic) Các thuộc tính thông dụng: Thuộc tính Giải thích Left Vị trí cạnh trái điều khiển so với vật chứa Top Vị trí cạnh điều khiển so với vật chứa Hieght Chiều cao điều khiển Width Chiều rộng điều khiển Name Một giá trị chuỗi dùng để nói đến điều khiển Enable Giá trị logic (True False) định người sử dụng có làm việc với điều khiển hay không Visible Giá trị logic (True False) định người sử dụng có thấy điều khiển hay không Một thuộc tính quan trọng khác BorderStyle, định thành phần cửa sổ (như tiêu đề, nút phóng to thu nhỏ…) mà biểu mẫu có Ngôn ngữ lập trình Visual Basic 6.0 Bảng sau liệt kê giá trị thuộc tính Giá trị Hiệu ứng biểu mẫu – None Không có cạnh viền, không tiêu đề, không di chuyển Giá trị thường dùng cho cửa sổ khởi động chương trình – Fixed Single co giãn cửa sổ cách kéo rê cạnh viền, dùng nút phóng to thu nhỏ Giá trị dùng cho cửa sổ có kích cỡ cố định xuất Taskbar – Sizable Có thể co giãn cửa sổ cách kéo rê cạnh viền dùng nút phóng to thu nhỏ Giá trị dùng cho cửa sổ thông dụng – Fixed Dialog Không thể co giãn không dùng nút phóng to thu nhỏ, Giá trị dùng cho cửa sổ đơn giản mật 4- Fixed Tool tương tự Fixed Dialog tiêu đề ngắn Font Window tiêu đề nút Close nhỏ giá trị dùng cho công cụ di động – Sizable Tool Tương tự Fixed Tool Window co giãn Giá trị Window dùng cho cửa sổ Properties Visual Basic 1.2.3 PHƯƠNG THỨC Là đoạn chương trình chứa điều khiển, cho điều khiển biết cách thức để thực công việc đó, chảng hạn dời điều khiển đến vị trí biểu mẫu Tương tự thuộc tính, điều khiển có phương thức khác nhau, có số phương thức thông dụng cho hầu hết điều khiển Các phương thức thông dụng Phương thức Giải thích Move Thay đổi vị trí đoói tượng theo yêu cầu chương trình Drag Thi hành hoạt động kéo thả người sử dụng SetFocus Cung cấp tầm ngắm cho đối tượng lệnh gọi phương thức ZOrder quy định thứ tự xuất điều khiển hình 1.2.4 SỰ KIỆN Nếu thuộc tính mô tả đối tượng, phương thức cách thức đối tượng hành động kiện phản ưúng đối tượng Tương tự thuộc tính phương thức, điều khiển có kiện thông dụng với hầu hết điều khiển Các kiện xảy thường kết hành động đó, di chuyển chuột, nhấn nút bàn Ngôn ngữ lập trình Visual Basic 6.0 phím, hiặc gõ vào hộp văn kiểu kiện gọi kiện khởi tạo người sử dụng, ta phải lập trình cho chúng kiện thông dụng Sự kiện Change Click Dblclick DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LostFocus MouseDown MouseMove MouseUp 1.2.5 Xảy Người sử dụng sửa đổi chuỗi ký tự hộp kết hợp hộp văn Người sử dụng dùng chuột click lên đối tượng Người sử dụng dùng chuột click đúp lên đối tượng Người sử dụng kéo rê đối tượng sang nơi khác Người sử dụng kéo rê đối tượng ngang qua điều khiển khác Đưa đối tượng vào tầm ngắm người sử dụng Người sử dụng nhấn nút bàn phím đối tượng tầm ngắm Người sử dụng nhấn thả nút bàn phím đối tượng tầm ngắm Người sử dụng thả nút bàn phím đối tượng tầm ngắm Đưa đối tượng khỏi tầm ngắm Người sử dụng nhấn nút chuột trỏ chuột nằm đối tượng Người sử dụng di chuyển trỏ chuột ngang qua đối tượng Người sử dụng thả nút chuột trỏ chuột nằm đối tượng MỐI QUAN HỆ GIỮA PHƯƠNG THỨC, THUỘC TÍNH VÀ SỰ KIỆN Mặc dù thuộc tính, phương thức kiện có vai trò khác chúng thường xuyên liên hệ với ví dụ ta di chuyển điều khiển phương thức Move ( thường đáp ứng số kiện) số thuộc tính Top, Height, Left, Width thay đổi theo Bởi kích cỡ điều khiển thay đổi, kiện Resize sảy Phụ thuộc lẫn có nghĩa ta đạt mjục đích công việc nhiều cách: xử lýu thuộc tính phương thức Ví dụ, ta có cách để di chuyển nút lệnh: a thuộc tính cmdMove.Left=100 cmdMove.Top=100 b phương thức cmdMove.Move 100,100 Một ví dụ khác, làm biểu mẫu xuất biến hình c thuộc tính ‘xuất frmMyForm.Visible =True ‘Biến frmMyForm.Visible =False d phương thức ‘xuất frmMyForm.Show ‘Biến Ngôn ngữ lập trình Visual Basic 6.0 frmMyForm.Hide 1.2.6 CỬA SỔ PROPERTIES cửa sổ cho phép lập trình viên xem xét sửa đổi thuộc tính biểu mẫu điều khiển lúc thiết kế Phần cửa sổ danh sách đối tượng, đối tượng chọn danh sách có thuộc tính hiển thị phần bên cửa sổ Thuộc tính Caption đánh dấu, nghĩa ta sửa đổi thuộc tính Từng thuộc tính có giá trị mặc định ta sửa đổi tay lúc thiết kế, chương trình lúc thi hành Một biểu mẫu có khoảng 40 thuộc tính hiển thị lúc thiết kế, ta truy cập số thuộc tính khác vào lúc thi hành Ta xem toàn thuộc tính xếp theo thứ tự bảng chữ cách chọn vào tab Alphabetic, xem theo nhóm cách chọn vào tab Categozized Ta mở cửa sổ Properties nhiều cách: a nhấn chuột vào biểu mẫu để chọn đối tượng hành, nhấn phím F4 để hiển thị cửa sổ Properties b Hoặc từ menu_View, chọn Properties c nhấn nút phải chuột lên biểu mẫu, ta thấy menu hiển thị chọn Properties 1.2.7 MINH HỌA VÍ DỤ LẬP TRÌNH BÀI TOÁN ĐƠN GIẢN Để làm quen với cách thức lập trình VB ta làm minh họa giải phương trình bậc A*X + B = Các bước tổng quát để thực hiện: a Tạo giao diện người sử dụng (GUI) b Viết lệnh kiện c Chạy thử sửa lỗi, hiệu chỉnh 1.3 1.3.1 LÀM VIỆC VỚI MỘT ĐỀ ÁN ĐỊNH NGHĨA Một đề án gồm có : a tệp tin đề án (.vbp) theo dõi toàn thành phần b tệp tin cho biểu mẫu (.frm) c tệp tin nhị phân (.frx) cho biểu mẫu Người sử dụng không sửa đổi Các tập tin phát sinh tự động cho tập tin frm dùng để chứa thuộc tính nhị phân Picture hay Icon Ngôn ngữ lập trình Visual Basic 6.0 Cust.GetData (lngID) Set CreateCustomer = Cust End If End Function Xưởng sản xuất đối tượng tạo đối tượng khách hàng dễ dàng với đầy đủ tính Đoạn chương trình sau tạo đối tượng CCustomer: Dim MyCust As CCustomer Dim cf As CCustFactory Set cf = New CCustFactory ' Retrieve data Set MyCust = cf.CreateCustomer(txtID.Text) Một lý khách để dùng phương thức xưởng sản xuất lập trình sở liệu Visual Basic để tiết kiệm tài nguyên kết nối, kết nối đến sở liệu đòi hỏi tiêu tốn nhiều thời gian nhớ Client Server Nếu dùng lớp xưởng sản xuất dễ dàng hạn chế số kết nối thực với server Ta kết nối lần, lớp xưởng sản xuất thay mô-dun lớp 12.3 TẠO CÁC LỚP CẦN SỬ DỤNG DỮ LIỆU Lớp có khả ràng buộc trực tiếp với sở liệu Đây tính Visual Basic 6.0 Ta không cần giới hạn điều khiển liệu thành nguồn liệu cho ứng dụng sở liệu Ngoài việc cung cấp nguồn liệu mới, Visual Basic loại bỏ hạn chế cách thức kết nối ứng dụng với nguồn liệu Ta không cần thiết lập ràng buộc liệu vào lúc thiết kế, với điều khiển DAO Data Thay vào đó, ta gán nguồn liệu (như điều khiển ADO Data,thiết kế DataEnvironment,hay lớp cung cấp liệu ) cho phần tiêu thụ liệu (như điều khiển giao diện nguời sử dụng ràng buộc ) lúc thi hành Điều cho phép đóng gói mô-dun lớp truy cập liệu Để tạo lớp làm nguồn liệu truy cập sở liệu Novelty, ta theo bước sau: Tạo đề án Standard EXE Dùng menu Project để thêm mô-dun lớp vào đề án Đặt tên mô-dun lớp CCustData Dùng cửa sổ Properties để đổi thuộc DataSourceBehavior thành 1-vbDataSource Dùng menu Project, References để thiết lập tham chiếu đến Microsoft ActiveX Data Objects Trong phần khai báo lớp, tạo đối tượng Recordset (private) Đối tượng xử lý truy cập sở liệu Private mrsCustomer As ADODB.Recordset Trong kiện Initialize lớp, viết chương trình để tạo đối tượng Recordset: Set mrsCustomer = New ADODB.Recordset mrsCustomer.Source = "select * from tblCustomer" mrsCustomer.CursorType = adOpenKeyset mrsCustomer.LockType = adLockOptimistic mrsCustomer.ActiveConnection = "DSN=JetNovelty;" mrsCustomer.Open Trong kiện Initialize lớp, viết chương trình đăng ký nguồn liệu với tập hợp DataMembers thư viện Microsoft Data Binding cung cấp Điều cho phép phần tiêu thụ liệu (như điều khiển ràng buộc) dùng lớp nguồn liệu : Viết chương trình cho kiện GetDataMember lớp để trả đối tượng Recordset dựa tham số DataMember kiện ( Sự kiện GetDataMember diện sau ta quy định giá trị cho thuộc tính 139 Ngôn ngữ lập trình Visual Basic 6.0 DataSourceBehavior ) Bởi kiện GetDataMember tham số hoá, ta kết nối ứng dụng với vô số recordset;tuy nhiên, lớp trả danh sách khách hàng Lưu ý : Tham số Data kiện GetDataMember đối tượng, recordset Do đó, kiện truy cập đối tượng khác thay đối tượng Recordset ADO Kế đến, viết phương thức (public) lớp CCustData để điều khiển recordset Trong ví dụ này, ta tạo phương thức di chuyển cung cấp điều khiển liệu: Public Sub MoveFirst() mrsCustomer.MoveFirst End Sub Public Sub MoveLast() mrsCustomer.MoveLast End Sub Public Sub MoveNext() mrsCustomer.MoveNext If mrsCustomer.EOF Then mrsCustomer.MoveLast End If End Sub Public Sub MovePrevious() mrsCustomer.MovePrevious If mrsCustomer.BOF Then mrsCustomer.MoveFirst End If End Sub Dùng menu Project Components, thêm điều khiển Microsoft DataGrid Control 6.0 (OLE DB) vào đề án.Nó cho phép ta hiển thị liệu lưới (grid) Tạo instance điều khiển lưới biểu mẫu Trên biểu mẫu, tạo nút lệnh để duyệt qua liệu Đặt tên chúng cmdFirst, cmdPrevious, cmdNext, cmdLast Trong kiện Load biểu mẫu, khai báo instance lớp nguồn liệu Viết chương trình cho kiện Click để gọi phương thức di chuyển : Private Sub Form_Load() ' Create the data source object Set mCustData = New CCustData ' Bind the object to grid Set DataGrid1.DataSource = mCustData DataGrid1.DataMember = "Customers" End Sub Private Sub cmdFirst_Click() mCustData.MoveFirst End Sub Private Sub cmdLast_Click() mCustData.MoveLast End Sub 140 Ngôn ngữ lập trình Visual Basic 6.0 Private Sub cmdNext_Click() mCustData.MoveNext End Sub Private Sub cmdPrevious_Click() mCustData.MovePrevious End Sub Thi hành ứng dụng 12.3.1 TẠO LỚP XUẤT DỮ LIỆU Có nhiều khả ta viết thủ tục lấy bảng sở liệu chuyển đổi thành tập tin văn có phân cách, sau ta sử dụng lại thủ tục nhiều lần Phần xây dựng hàm xuất HTML mô tả chương 14 “Thiết lập báo cáo xuất thông tin ” để cung cấp việc xuất liệu ta sử dụng lớp CCustomer Để cung cấp cho lớp CCustomer khả xuất, ta thêm thuộc tính phương thức cho lớp Thuộc tính mới, HTMLText, lấy thuộc tính đối tượng CCustomer định dạng thành trang HTML Thủ tục thuộc tính gọi hàm (private), HTMLRow để định dạng dòng bảng Public Property Get HTMLText() As String Dim str As String str = "" & vbCrLf str = str & "" & vbCrLf str = str & "" & "Customer: " & _ FirstName & " " & _ LastName & _ "" & vbCrLf str = str & "" & vbCrLf str = str & "" & vbCrLf str = str & "" & vbCrLf str = str & HTMLTableRow("First name:", FirstName) str = str & HTMLTableRow("Last name:", LastName) str = str & HTMLTableRow("Address:", Address) str = str & HTMLTableRow("City:", City) str = str & HTMLTableRow("State:", State) str = str & "" str = str & "" & vbCrLf str = str & "" & vbCrLf str = str & "" & vbCrLf HTMLText = str End Property Đoạn chương trình định dạng HTML mà Quá trình xuất gồm phần : thứ nhất, định dạng liệu HTML, thứ hai, ghi tập tin Như vậy, ta phải viết thủ tục riêng để thi hành tác vụ Phương thức SaveHTML đối tượng Customer lưu liệu HTML định dạng thành tập tin Public Sub SaveHTML(strFileName As String) Dim fs As Scripting.FileSystemObject Dim txt As Scripting.TextStream Set fs = New Scripting.FileSystemObject 141 Ngôn ngữ lập trình Visual Basic 6.0 Set txt = fs.OpenTextFile(strFileName, ForWriting, True) txt.Write HTMLText txt.Close Set txt = Nothing Set fs = Nothing End Sub Đưa thủ tục thành phần lớp CCustomer, tạo ứng dụng cho phép người sử dụng cung cấp ID khách hàng tên tập tin xuất Khi người sử dụng nhấn nút lệnh, khách hàng chọn xuất vào tập tin HTML người sử dụng Option Explicit Private Cust As CCustomer Private Sub Form_Load() Set Cust = New CCustomer End Sub Private Sub cmdExport_Click() Cust.GetData txtID.Text Cust.SaveHTML App.Path & "\" & txtFilename.Text MsgBox "File saved.", vbInformation End Sub Tập tin HTML tạo phương thức xuất : 12.3.2 TRIỂN KHAI LỚP THÀNH ACTIVE SERVER Ta dùng Visual Basic để biên dịch đề án dựa lớp thành thành phần ActiveX Các thành phần này, dạng DLL hay EXE, cung cấp chức đối tượng mà không cần phân phát hay chép mã nguồn lớp Nó tiện dụng ta dùng lại chương trình nhiều đề án với nhiều lập trình viên Tạo thành phần ActiveX từ lớp cho ta khả phân phát đối tượng từ xa, chương 15 Để tạo đề án thành phần ActiveX Visual Basic, ta bắt đầu tạo đề án Khi Visual Basic yêu cầu ta cung cấp kiểu đề sẵn, chọn ActiveX DLL hay ActiveX EXE Một đề án tạo với mô-dun lớp 142 Ngôn ngữ lập trình Visual Basic 6.0 Sau đó, ta thêm lớp khác để lập trình Bước cuối biên dịch toàn thành ActiveX DLL hay ActiveX EXE Biên dịch đề án ActiveX tương tự biên dịch với đề án thông thường Điểm khác biệt việc sử dụng ActiveX DLL ActiveX EXE thiết kế để dùng với ứng dụng khác 12.3.2.1 SỬ DỤNG THÀNH PHẦN ACTIVEX TRONG MỘT ĐỀ ÁN THÔNG THƯỜNG STANDARD EXE Sau biên dịch thành phần ActiveX, ta lập tham chiếu đến từ đề án khác Visual Basic Khi ta thực điều này, nghĩa ta dùng lớp chứa thành phần ActiveX để tạo đối tượng đề án Điều cho phép ta tận dụng tính thành phần ActiveX cách đơn giản, quán, không bận tâm đến chương trình bên thành phần Để thực tham chiếu ActiveX Server dùng menu Project References 12.3.2.1.1 BIÊN DỊCH ACTIVEX SERVER Tạo đề án Visual Basic Khi Visual Basic yêu cầu ta cung cấp kiểu đề án cần tạo, chọn ActiveX DLL Trong cửa sổ Properties, sửa thuộc tính Name đề án ActiveX DLL thành CustSrv Visual Basic thêm lớp rỗng, gọi Class1, vào đề án ActiveX DLL cách mặc định Nhấn nút phải chuột lên lớp, chọn Remove Class1 từ menu bật để loại bỏ lớp Bởi ta thêm vào đề án lớp sử dụng ADO, ta dùng menu Project Refenrences để lập tham chiếu đến Microsoft ActiveX Data Objects 2.0 Nếu muốn dùng phiên CCustomer xây dựng phần xuất HTML trước đây, lập tham chiếu đến Microsoft Scripting Library Kế đến, thêm lớp tạo trước vào đề án ActiveX DLL Để thực điều này, nhấn nút phải chuột lên đề án CustSrv, chọn Add từ menu bật Chọn Class Module Hộp thoại Add Class Module xuất Chọn tab Existing Chọn lớp CCustomer Trong thuộc tính lớp CCustomer, đổi thuộc tính Instancing thành 5_Multiuse Nếu cần, thêm trình thiết kế DataEnviroment ta tạo trước vào đề án Thực cách chọn menu Project, Add File,rồi chọn tập tin deNovelty.Dsr từ hộp thoại tập tin Biên dịch đề án cách chọn menu File, Make CustSrv.dll Hộp thoại Make Project xuất Chọn thư mục lưu DLL nhấn OK ActiveX DLL biên dịch CustSrv.dll ta sử dụng đề án 12.3.2.1.2 SỬ DỤNG ACTIVEX SERVER Tạo đề án kiểu Standard EXE Tìm lập tham chiếu đến CustSrv menu Project References 143 Ngôn ngữ lập trình Visual Basic 6.0 Trong biểu mẫu, đưa vào đoạn chương trình tạo instance đối tượng từ ActiveX server trả thông tin từ sở liệu dạng đối tượng Option Explicit ' References CustSvr Private Cust As CCustomer Private Sub Form_Load() Set Cust = New CCustomer End Sub Private Sub cmdGetCust_Click() Cust.GetData txtID.Text MsgBox Cust.FirstName & " " & _ Cust.LastName & " " & _ Cust.Address & " " & _ Cust.City & " " & _ Cust.State End Sub Thi hành ứng dụng Nó hiển thị liệu từ sở liệu ta nhập số hợp lệ hộp văn nhấn nút lệnh Đối với ứng dụng độc lập ứng dụng có lợi ích không rõ rệt ta dùng ứng dụng phân tán có lợi ích đáng kể Để triển khai từ xa qua mạng dùng Microsoft Transaction Server 12.3.2.2 ĐĂNG KÝ THÀNH PHẦN TRONG ACTIVATEX TRÊN MÁY NGƯỜI SỬ DỤNG Thành phần ActiveX cần đăng ký máy tính để sử dụng lại máy Việc đăng ký bảo đảm hệ điều hành nhận tồn thành phần ứng dụng tạo đối tượng từ Khi ta làm việc với ActiveX server máy tính dùng vào việc phát triển phần mềm, việc đăng ký không vấn đề Bởi thành phần tự động đăng ký với Visual Basic lúc chúng biên dịch Tuy nhiên 144 Ngôn ngữ lập trình Visual Basic 6.0 ta phân phát thành phần đến người sử dụng, ta phải bảo đảm thành phần ActiveX đăng ký máy người sử dụng Có số phương pháp để thực điều Sử dụng Trình đóng gói triển khai ứng dụng (Package and Deployment Wizard) để phân phát người sử dụng Sử dụng phương pháp thủ công dùng tiện ích Regsrv32 EXE 12.3.2.3 CHUYỂN ĐỔI ĐỀ ÁN STANDARD EXE THÀNH ĐỀ ÁN ACTIVATEX Ta chuyển đổi đề án Standard EXE thành đề án ActiveX ta dự định dùng lại đề án có sẵn biến thành thành phần ActiveX độc lập Ngoài ra, ta chuyển đổi kiểu thành phần ActiveX : ActiveX DLL ActiveX EXE) cách đổi thuộc tính đề án : Trong Visual Basic, mở đề án ta dự định chuyển đổi Chọn menu Project Properties Chọn kiểu đề án : 12.3.2.4 SỬ DỤNG THÀNH PHẦN ACTIVEX TỪ XA Khả biên dịch lớp độc lập thành thành phần ActiveX phần quan trọng truy cập sở liệu từ xa Trong môi trường Client / Server, ta dùng ActiveX Server để xử lý tương tác ứng dụng Client Server sở liệu 12.3.2.5 TẠO THÀNH PHẦN ĐA LUỒNG Visual Basic có khả tạo thành phần ActiveX đa luồng (multi-thread) Với đa luồng, thành phần thi hành theo cách đáp ứng Bởi hệ điều hành cấp phát tài nguyên xử lý cho nhiều luồng; thành phần thi hành với nhiều luồng, chức thành phần chia thành nhiều khối cho nhiều luồng (một số luồng gán mức ưu tiên cao hệ điều hành ) Ta xem luồng đơn vị điều khiển nhỏ hệ điều hành có khả lập lịch biểu thi hành Ngoài ra, máy có nhiều vi xử lý, hệ điều hành có khả gán luồng định để thi hành vi xử lý riêng Cho thành phần khả đa luồng giải pháp tận dụng tối đa lực máy tính với nhiều vi xử lý 145 Ngôn ngữ lập trình Visual Basic 6.0 Thêm hỗ trợ đa luồng thành phần đòi hỏi ta đổi thuộc tính đề án vào lúc biên dịch Không có thay đổi khác chương trình Trong Visual Basic, mở đề án thành phần (ActiveX EXE, ActiveX DLL, điều khiển ActiveX) Từ menu Project,chọn Properties Chọn Apartment Threaded bảng Threading Model Nhấn OK Khi đề án biên dịch, có hỗ trợ đa luồng Ta có thêm khả bổ sung cho ActiveX EXE : Thread per Object hay Thread Pool Thread per Object có nghĩa ActiveX EXE sinh luồng cho đối tượng tạo Điều cung cấp khả hoạt động tốt nhất, tiêu tốn nhiều tài nguyên máy tính ThreadPool, trái lại, cho phép ta kiểm soát có luồng mà thành phần ActiveX tạo lúc, cho phép ta hạn chế tài nguyên tiêu tốn thành phần Tuy nhiên, số đối tượng yêu cầu vượt số luồng Thread pool Server thành phần, yêu cầu đến sau đối tượng Server bị ngăn lại trình Client giải phóng luồng 12.3.2.6 CÁC HẠN CHẾ CỦA THÀNH PHẦN ĐA LUỒNG Ngôn ngữ hạn chế hỗ trợ đa luồng: Đây chuyển đổi biên dịch Ta viết chương trình để làm với Không có trình gỡ rối hỗ trợ đa luồng Không có hỗ trợ đa luồng ứng dụng MDI Không hỗ trợ cho điều khiển ActiveX đơn luồng ứng dụng đa luồng : Điểm hạn chế bị áp đặt Visual Basic vấn đề lớn khả hoạt động sinh tổ hợp điều khiển đơn luồng nơi chứa đa luồng Điều có nghĩa ta tạo điểu khiển ActiveX đa luồng sử dụng điều khiển đơn luồng khác – không hoạt động Tuy nhiên phần lớn điều khiển Visual Basic đa luồng Các thuộc tính phương thức khai báo Friend gọi qua luồng Để goi thuộc tính phương thức đặc biệt gọi qua Public 146 Ngôn ngữ lập trình Visual Basic 6.0 13 ĐỐI TƯỢNG DỮ LIỆU ACTIVEX • Xây dựng ứng dụng Visual basic với ADO • Sử dụng dịch vụ liệu từ ADO Cho đến Visual basic 5.0, ADO (Dữ liệu đối tượng ActivateX - ActivateX Data Object) trở thành tảng ký thuật truy cập liệu Internet Trong Visual basic 6.0, ADO 2.0 cang quan trọng - mạnh mẽ Ta dùng ADO không để truy cập sở liệu thông qua trang web, mà dùng để lấy liệu từ ứng dụng viết Visual basic ADO giao diện dựa đối tượng cho công nghệ liệu gọi OLE DB OLE DB thiết kế để thay ODBC phương thức truy cập liệu ODBC thời tiêu chuẩn phía Client sử dụng Windows phổ biến để truy cập liệu quan hệ thiết lập Server sở liệu quan hệ tổng quát tốt đến ứng dụng Client OLE DB sâu bước, cách làm cho tất nguồn liệu trở thành tổng quát ứng dụng Client 13.1 XÂY DỰNG ỨNG DỤNG VISUAL BASIC VỚI ADO ADO công nghệ truy cập sở liệu hướng đối tượng tương tự DAO RDO ADO Microsoft xem kỹ thuật để truy cập sở liệu từ Web server Bởi ADO cung cấp dạng thư viện ActivateX Server (tương tự DAO RDO), ta thoải mái dùng ADO ứng dụng Visual basic Trong thực tế, nhiều cách, ta thấy sử dụng ADO để làm việc với sở liệu Client/Server dễ kỹ thuật khác 13.1.1 TÌM HIỂU CẤU TRÚC OLE DB / ADO Phần lớn nhà lập trình viên Visual basic không thao tác trực tiếp với OLE DB Thay vào đó, họ lập tình với ADO, mô hình đối tượng cung cấp giao diện với OLE DB Client Workstation Client Application Remote Data Object ActiveX Data Object ODBC Driver OLE DB Datta Provider ODBC Driver Manager OLE DB Document Server Email Server Relational Database Trình cung cấp OLE DB không nhiều trình cung cấp ODBC số lượng tăng lên đáng kể từ ADO 2.0 phát hành vào năm 1998 Phiên đưa vào Visual basic 6.0 bao gồm trình cung cấp cục cho SQL Server, Oracle Microsoft Jet/ access Có nhiều khả bạn dùng ADO OLE DB để đạt nguồn liệu quan hệ trình cung cấp OLE DB cụ Bởi có tình cung cấp OLE DB tổng quát cho sở liệu quan hệ ODBC Ta cần lập trình với phần giao diện Người sử dụng phía Client Bởi việc truy cập liệu trình duyệt Web ứng dụng Visual basic chuyển hết phía ActivateX Server, ta bảo đảm logic chương trình quán, loại ứng dụng dùng Sau cấu trúc truy cập sở liệu ODBC dùng trình cung cấp ODBC OLE DB 147 Ngôn ngữ lập trình Visual Basic 6.0 Client Application ActiveX Data Object OLE DB ODBC Provider ODBC Driver ODBC Driver Manager OLE DB Relational Database Cấu trúc cho phép ta dùng thành phần lập trình ActivateX thông dụng trình duyệt Web ứng dụng Client Visual basic 13.1.2 CÀI ĐẶT VÀ THIẾT LẬP THAM CHIẾU ĐẾN ADO TRONG ỨNG DỤNG VISUAL BASIC ADO cài đặt phần Visual basic 6.0 Phiên của ADO cho phép tải xuống miễn phí từ địa http://www.Microsoft.com/data/ado Sau cài đặt xong, ta bắt đầu sử dụng cách thiết lập tham chiếu đến thư viện ADO ứng dụng Visual basic, tương tự ta thiết lập tham chiếu đến thư viện DAO hay RDO - Trong project Visual basic chọn references, hộp thoại references xuất - Chọn vào hộp đánh dấu “Microsoft ActivateX Data Objects 2.0 Library” nhấn OK Chú ý tham chiếu ADO phải đảm bảo tham chiếu đến thư viện “Microsoft ActivateX Data Objects 2.0 Recordset” Đây phiên loại nhẹ thư viện ADO thiết kế để sử dụng phía Client Nó hỗ trợ Recordset Field 13.1.3 SỬ DỤNG ADO VỚI CÁC THƯ VIỆN ĐỐI TƯỢNG TRUY CẬP DỮ LIỆU KHÁC Nếu bạn tạo ứng dụng thiết kế để sử dụng ADO kết hợp với thư viện đối tượng truy cập liệu khác, DAO, cần phải phân biệt giữa, ví dụ đối tượng RecordSet DAO Recordset ADO Chúng đổi chỗ cho Nếu ta tham chiếu đến vừa ADO vừa DAO khai báo biến Recordset, làm để phân biệt Recordset DAO hay ADO? Câu trả laời thứ tự tham chiếu vào đề án Nếu thêm tham chiếu đối tượng DAO trước Recordset DAO ngược lại Để tránh nhầm lẫn ta nên khai báo tường minh sau: ADODB.Recorset Nếu không muốn tham chiếu trực tiếp đến thư viện đối tượng chương trình, ta có cách khác Ta kiểm soát thư viện đối tượng nao truy cập mặc định cách dùng giá trị mực ưu tiên hộp References 13.1.4 DÙNG ĐỐI TƯỢNG CONNECTION CỦA ADO ĐỂ KẾT NỐI VỚI NGUỒN DỮ LIỆU Vị trí đối tượng Connection mô hình ADO:(Xem hình dưới): 148 Ngôn ngữ lập trình Visual Basic 6.0 Dùng phương thức Open đối tượng Connection để thiết lập kết nối với nguồn liệu Để thông báo cho ADO cách nối với nguồn liệu ta phải cung cấp thông tin dạng chuối kết nối ODBC Ta dùng thuộc tính ConnectionString để thực điều Ta có khả tuỳ chọn để chọn trình cung cấpnào dùng cách quy định giá trị thuộc tính Provider đối tượng Connection 13.1.4.1 CHỈ RA TRÌNH CUNG CẤP OLE DB VÀ CHUỖI KẾT NỐI Nếu không trình cung cấp, ta không dùng đối tượng Connection, ta có trình cung cấp mặc định, trình cung cấp ODBC, MSDASQL Thuộc tính Provider đối tượng Connection chuỗi ký tự kết nối mà trình cung cấp OLE DB dùng Dùng chuỗi kết nối ADO để cung cấp thông tin cách thức kết nối với Server sở liệu Khi ta dùng trình cung cấp ODBC cho OLE DB, chuỗi kết nối tương tự chuỗi kết nối ODBC Điều có nghĩa thông tin xác mong chờ trình điều khiển ODBC thay đổi tuỳ theo cách thực Đối với trình cung cấp khác, chuỗi kết nối có cú pháp hoàn toàn khác Khi ta dùng trình cung cấp ODBC, thuộc tính ConnectionString DSN (tên nguồn liệu) hay kết nối DSN Đây ví dụ kết nối đến sở liệu dùng trình cung cấp ODBC với DSN: Connection Object Property Arttributes CommandTimeOut ConnectionString ConnectionTimeOut CursorLocation DefaultDataBase Errors collection Isolation Level Mode Properties collection Provider State Version Methods BeginTrans Cancel Close CommitTrans Execute Open OpenSchema RollbackTrans Events BeginTransComplete CommittranCopmlete ConnectionComplete Disconnect ExexuteComplete InfoMessage RollBackTransComplete WillConnect WillExecute Errors collection Error Object Properties collection Property object Recordset object Command object Cn.Provider = “MSDASQL” Cn.ConnectionString = “DSN = Novelty;” Sử dụng DSN chuỗi kết nối dĩ nhiên yêu cầu DSN tên Novelty phải thực tồn máy Client Trường hợp kết nối DSN: Cn.Provider = “MSDASQL” Cn.ConnectionString = “DRIVER = {SQL Server}; DATABASE = Novelty; UID = sa ; PD = ;” 149 Ngôn ngữ lập trình Visual Basic 6.0 Kết nối nối kết Server nhanh không cần đọc thông tin DSN từ bảng đăng ký Windows Tuy nhiên, linh hoạt gắn chặt thông tin với chương trình biên dịch 13.1.5 LÀM VIỆC VỚI CON TRỎ Tương tự RDO DAO, ADO hỗ trợ số kiểu trỏ Ngoài việc cung cấp hỗ trợ duyệt qua ghi thời điểm, kiểu trỏ khác cho phép ta điều khiển cách quản lý Recordset Quy định vị trí trỏ cách gán giá trị cho thuộc tính Recordset Sau kiểu trỏ đối tượng Connection: Kiểu trỏ Hằng Mô tả Phía Client adUseClient Tạo trỏ phía Client Phía Server adUseServer Tạo trỏ phía Server Chọn trỏ kiểu Client nghĩa ADO OLE DB xử lý hoạt động trỏ Con trỏ Client thường sẵn server Ví dụ, ADO, ta tạo Recordset không kết nối, cho phép ta thao tác với ghi mà kết nối thường xuyên đến server Khả chức thư viện trỏ phía Client Trong ADO, thuộc tính CursorLocation áp dụng cho đối tượng Recordset Connection Nếu ta gán thuộc tính CursorLocation đối tượng Connection, tất Recordset mà ta tạo từ kết nối có vị trí trỏ đối tượng Connection Ngoài việc vị trí trỏ, ta có khả tạo kiểu trỏ khác ADO Việc chọn lựa trỏ tuỳ theo cân đối chức khả hoạt động Chỉ kiểu trỏ cách gán thuộc tính CursorType đối tượng Recordset Sau kiểu trỏ tạo ADO: Kiểu trỏ Hằng Mô tả Forward-only adOpenForwardOnly Không dùng trỏ - ta chuyển phía trước Recordset; sử dụng phương thức MovePrevious MoveFirst sinh lỗi Keyset(Trong adOpenKeyset Ta tháy ghi ADO gọi người dùng khác thêm vào, họ dynaset) sửa đổi hay xoá tin làm ảnh hưởng đến Recordset ta làm việc; kiểu trỏ hiệu nhất, đặc biệt Recordset lớn Dynamic adOpenDynamic Ta thấy toàn thay đổi liệu người sử dụng khác thực ta mở Recordset; kiểu trỏ hiệu mạnh mẽ Static(Trong adOpenStatic Bản toàn liệu DAO gọi Recordset; kiểu đặc biệt hữu dụng snapshot) ta tìm kiếm liệu hay thi hành báo cáo; kiểu trỏ hữu dụng cho Recordset nhỏ Dĩ nhiên, lý để ta chọn trỏ kiểu forward-only thay keyset hay dynamic khả hoạt động ta hiển thị liệu chứa sở liệu – trỏ kiểu forward-only làm khả hoạt động ứng dụng hiệu Lưu ý rằng, trình cung cấp liệu tạo điều khiển trỏ mà ta yêu cầu, tạo trỏ mà Nói chung, không báo lỗi ta cố thi hành tác vụ vốn bị cấm kiểu trỏ Xác định trỏ tính khác hỗ trợ trình cung cấp 150 Ngôn ngữ lập trình Visual Basic 6.0 Bởi OLE DB ADO thiết kế phép truy cập đến nhiều nguồn liệu, ứng dụng cần xác định tính trình cung cấp định hỗ trợ Có thể hệ sở liệu quan hệ cho phép tạo trỏ kiểu forword-Only phía server, hệ sở liệu máy cá nhân sở liệu dựa tập tin tính Phương thức supports đối tượng ADO Recordset xác định kiểu trỏ trình cung cấp liệu hỗ trợ Bảng sau liệt kê giá trị truyền vào phương thức Supports để xác định tính hỗ trợ đối tượng Recordset: Hằng Mô tả adAddnew Thêm ghi vào Recordset adApproxPosition Thuộc tính AbsolutePage AbsolutePosition có sẵn; chúng dùng để kết hợp với thuộc tính Pagesize PageCount đối tượng Recordset phép xác định trang chứa ghi hành adBookmark Có thể quy định đánh dấu trang sách Recordset adDelete Bản ghi xoá Recordset adHoldRecords Bản ghi trả từ sở liệu mà không cần ghi sửa đổi có vào server adMovePrevious Có thể cuộn tới lui Recordset adResync Phương thức có sẵn adUpdate Recordset cập nhật adUpdateBatch Recordset cập nhật hàng loạt với phương thức UpdateBatch Ta nạp sửa đổi nhiều mẫu tin hoạt động nhất, cải tiến hiệu Client/Server 13.1.6 KHOÁ BẢN GHI TRONG ADO Tương tự mô hình đối tượng truy cập sở liệu khác, ADO cho phép quy định kiểu khoá ghi(Record - locking) khác Ta dùng tính cần kiểm soát cách thức cập nhật ghi với nhiều người sử dụng sở liệu Quy định chế độ khoá cho đối tượng Recordset ADO thông qua thuộc tính LockType Dưới danh sách kiểu khoá ghi Hằng Mô tả adLockReadOnly Cấm cập nhật ghi adLockPressimistic Bản ghi Recordset bị khoá bắt đầu sửa đổi, tiếp tục bị khoá đến thi hành phương thức Update hay chuyển sang ghi khác adlockOptimistic Bản ghi bị khoá thi hành phương thức Update hay di chuyển sang ghi khác adlockBatchOptimistic Hỗ trợ cập nhật nhiều ghi lúc Điểm quan trọng cần lưu ý phương thức khoá mặc định ADO adLockReadOnly Đây điểm khác biệt đáng kể lập trình ADO DAO, DAO mặ định Recordset phép sửa đổi Điều có nghĩa ta không đổi thuộc tính LockType CursorType, Recordset DAO đọc Sự diện kiểu khoá ghi phụ thuộc vào trình cung cấp liệu hỗ trợ Ta dùng phương thức support đối tượng Recordset để xác định trình cung cấp có hỗ trợ kiểu khoá ghi hay không 13.1.7 SỬ DỤNG ĐỐI TƯỢNG RECORDSET CỦA ADO ĐỂ THAO TÁC VỚI DỮ LIỆU Đối tượng Recordset ADO, tương tự Recordset DAO rdoresultset RDO, phương pháp truy cập thông tin trả từ trình cung cấp liệu Recordset ADO có nhiều thuộc tính phương thức trùng với Recordset mô hình khác, làm việc với chúng tương tự Recordset khác 151 Ngôn ngữ lập trình Visual Basic 6.0 Vị trí Recordset ADO mô hình đối tượng ADO: Recordset Object Property AbsolutePage AbsolutePosition ActiveCommand ActiveConnection BOF Bookmark CacheSize CursorLocation Methods Addnew Cancel CancelBatch CancelUpdate Clone CompareBookmark Delete Find Events EndOfRecorset FetchCopmlete FetchProgress FieldChangeComplete MoveComplete RecordChangeComplete RecordsetChangeComplete WillChangeField Fields collection Field Object Properties collection Property object Thủ tục tạo Recordset cảu ADO tương tự tạo rdorseultset RDO Tuy nhiên, ADO thêm thay đổi lý thú: khả tạo đối tượng Recordset không đòi hỏi đối tượng Connection ngầm 13.1.7.1 DÙNG ĐỐI TƯỢNG RECORDSET ĐỂ CẬP NHẬT VÀ THÊM BẢN GHI MỚI Thêm cập nhật ghi ADO tương tự DAO Thêm ghi: - Mở Recordset - Thi hành phương thức AddNew - Gán giá trị cho trường đối tượng Recordset - Lưu ghi phương thức Update Recordset Cập nhật ghi: - Mở Recordset - Gán giá trị cho trường Recordset - Lưu ghi thi hành phương thức Update 13.1.8 TẠO RECORDSET NGẮT KẾT NỐI Khi dùng trỏ phía Client ADO, ta có khả ngắt kết nối với server tiếp tục làm việc với liệu Cách làm cho ứng dụng trở nên linh hoạt, nhiều người sử dụng làm việc với liệu họ không cần kết nối đến Server Để ngắt kết nối với Server ADO, ta quy định thuộc tính ActiveConnection đối tượng Recordset Nothing Client tiếp tục làm việc với liệu chí không kết nối với server 13.2 SỬ DỤNG DỊCH VỤ DỮ LIỆU TỪ XA CỦA ADO Dịch vụ liệu từ xa (Remote Data Service - RDS) dùng để lấy Recordset ADO từ web server Thư viên kèm với ADO, chủ yếu cho phép ta dùng HTTP làm vận chuyển mạng cho ứng dụng sở 152 Ngôn ngữ lập trình Visual Basic 6.0 liệu Chủ yếu dùng ứng dụng trình duyệt web, hoạt động tốt với Client Visual basic Lưu ý RDS có tên cũ Nối liệu nâng cao (Advance Data Connector) bạn tìm hiểu thêm địa chỉ: http://www.Microsoft.com.data/ado/rds Ta dùng đối tượng DataControl RDS để lấy đối tượng Recordset ADO Internet Đối tượng này, phục vụ từ máy tính chạy với IIS 3.0(microsoft Internet Infomation Server) trở lên, có khả trả đối tượng Recordset ADO đến Client qua HTTP Cách dễ để minh hoạ cách dùng RDS thi hành truy vấn Web server dùng đối tượng DataControl RDS - Tạo đề án Standard EXE - Trong menu Project Referances, lập tham chiếu đến Microsoft ActivateX Data Objects 2.0 Recordset Library - Tạo hộp văn bản, nút lệnh, danh sách biểu mẫu - Đưa đoạn chương trình sau: Option Explicit Private rdc As RDS.DataControl Private Sub cmdQuery_Click() Screen.MousePointer = vbHourglass Set rdc = New RDS.DataControl rdc.SQL = "select * from tblCustomer where state = 'IN'" rdc.ExecuteOptions = adcExecAsync rdc.Connect = "DSN=JetNovelty;" rdc.Server = "http://localhost/" rdc.Refresh While rdc.ReadyState = adcReadyStateLoaded ' busy DoEvents Wend Do Until rdc.Recordset.EOF With rdc.Recordset lstCustomer.AddItem.Fields("FirstName") & " " & _ Fields("LastName") MoveNext End With Loop Set rdc = Nothing Screen.MousePointer = vbNormal End Sub Trong ví dụ này, server “localhost” dùng Đây cách gọi tắt Web server chứa máy Nó tiện dụng cần kiểm nghiệm chương trình.Vòng lặp While Wend dùng để chờ đáp ứng server Đây tính bất đồng lênh gọi HTTP Ta chắn lâu server đáp ứng, ta phải chờ 153 [...]... VB Default Back color Button face VB Default Width 260 Points Height 260 Points Height 255 Points Check box Combo box, drop-down list box Command button VB Default Form Label Vervical scroll bar Horizontal scroll bar Option button 26 Ngôn ngữ lập trình Visual Basic 6. 0 Text box Height All color 285 Points Default 27 Ngôn ngữ lập trình Visual Basic 6. 0 3.1.3 REPORT DESIGN STANDARD (FOR CRYSTAL REPORT)... thứ hai, Visual Basic sẽ báo lỗi 1.3.9 TẠO TỆP TIN EXE Các ví dụ trên đây được thi hành thông qua nút Start của Visual Basic hoặc nhấn F5 Tuy nhiên khi chương trình hoàn tất, ta cần có một tệp tin thi hành, hay tập tin EXE 1.3.9.1 SO SÁNH TRÌNH BIÊN DỊCH VÀ TRÌNH THÔNG DỊCH ngôn ngữ lập trình chia làm hai trường phái: thông dịch và biên dịch người sử dụng ngôn ngữ biên dịch hay xem thường ngôn ngữ thông... phần nhỏ của quá trình lập trình phát triển ứng dụng, nhằm tạo ra giao diện cho ứng dụng Sau đó, bạn cần viết chương trình để ứng dụng hoạt động Do đó, chương này sẽ đi sâu vào phần công việc chính của Visual Basic, viết chương trình Visual Basic là ngôn ngữ lập trình dựa trên đối tượng Nếu bạn là người mới học, chương này sẽ giới thiệu các khối thiết kế cơ bản để xây dựng chương trình Khi đã hiểu... dụng, trình thông dịch sẽ duyệt qua từng dòng chương trình, chuển đổi chúng thành mã máy Vì vậy quá trình này rất chậm chạp 1.3.9.2 NGÔN NGỮ GIẢ BIÊN DỊCH Trong các phiên bản trước của Visual Basic, khi ta biên dich ứng dụng, chúng được chuyển sang một loại mã để dễ dàng sử lý, gọi là P- code về phương diện kỹ thuật, có thể gọi đó là biên dịch Tuy nhiên ta cần kèm theo 11 Ngôn ngữ lập trình Visual Basic. .. kèm theo 11 Ngôn ngữ lập trình Visual Basic 6. 0 mmột số tập tin của Microsoft vì máy tính vẫn chưa hiểu ngôn ngữ P- Code những tập tin gửi kèm theo ứng dụng sẽ thông dịch nó Từ Visual Basic 5 trở về sau, chúng ta có thể biên dịch thực sự trên các chương trình Visual Basic không còn những thông dịch thi hành ẩn: chương trình được biên dịch thẳng thành ngôn ngữ máy Ta có thể bật hay tắt chức năng này... sẵn 3 nhấn OK, Visual Basic tự động tạo nhóm đề án và thêm mới đề án 1.4.3 XOÁ ĐỀ ÁN TRONG NHÓM ĐỀ ÁN 1 Trong cửa sổ Project Explorer, chọn đề án cần xoá 2 Từ menu file, chọn REMOVE Project Ta chỉ dùng nhóm đề án khi tạo các điều khiển ActiveX, vốn đòi hỏi nhiều đề án mở cùng một lúc 13 Ngôn ngữ lập trình Visual Basic 6. 0 2 LÀM VIỆC VỚI CÁC ĐIỀU KHIỂN 2.1 CÁC LOẠI ĐIỀU KHIỂN Trong Visual Basic có ba nhóm... mẫu Dưới đây là các dạng tệp tin có thể thêm vào đề án : 8 Ngôn ngữ lập trình Visual Basic 6. 0 a biểu mẫu (form): tệp tin.frm chứa môtả của một biểu mẫu và các điều khiển, kể cả các thuộc tính của chúng Nó cũng chứa khai báo các hằng, biến và thủ tục b Lớp (Class) là một trong những tính năngquan trọng nhất của Visual Basic, được dùng trong lập trình hướng đối tượng để định nghĩa các khuôn mẫu cho các... menu ngữ cảnh chọn Add xuất hiện hộp thoại như trên TỆP TIN a Chọn tệp tin trong cửa sổ Project Explorer b Từ menu Project chọn Remove c Tham chiếu tệp tin bị xoá trong đề án (thực chất nó vẫn được lưu trên đĩa) 9 Ngôn ngữ lập trình Visual Basic 6. 0 Khi một tệp tin trong đề án bị xoá Visual Basic sẽ cập nhật những thay đổi này trong tập tin.vbp khi ta lưu đề án Do đó néu ta xoá tệp tin bên ngoài Visual. .. except listed in table Acronyms bellow - The first letter of each word must be capitalized 3.2 THIẾT KẾ TRƯỚC KHI VIẾT CHƯƠNG TRÌNH 29 Ngôn ngữ lập trình Visual Basic 6. 0 Có lẽ khâu quan trọng nhất trong lập trình là thiết kế Sau khi thiết kế giao diện, bạn cần thiết kế cấu trúc chương trình Cách thiết kế khác nhau sẽ dẫn đến cách hoạt động khác nhau và bảo trì, theo đó cũng khác nhau Code trong VB được... cảm ngữ cảnh SHIFT + F10 3.3.2 MỘT SỐ CHỨC NĂNG TỰ ĐỘNG 3.3.2.1 AUTO SYNTAX CHECK Từ menu Tools, chọn Option… Hộp thoại xuất hiện Khi Auto Syntax Check không bật lên, nêu ta viết 1 dòng chương trình như sau: 30 Ngôn ngữ lập trình Visual Basic 6. 0 Form1.left = rồi nhấn phím Enter VB sẽ hiển thị dòng chương trình sai với mầu đỏ Tuy nhiên, nó không giải thích thêm và ta có thể tiếp tục gõ chương trình ... IDE Visual basic định lại cấu hình cho hiển thị SDI lần khởi động tiếp sau Visual basic - Nhấn OK, thoát khởi động lại Visual basic 1.1.8 TRỢ GIÚP Không làm chủ ngôn ngữ lập trình Visual basic, ... Visual Basic 6.0 Khi tệp tin đề án bị xoá Visual Basic cập nhật thay đổi tập tin.vbp ta lưu đề án Do néu ta xoá tệp tin bên Visual Basic, tệp tin đề án không cập nhật ta mở lại đề án Visual Basic. .. 147 13.1 Xây dựng ứng dụng Visual basic với ADO 147 13.2 Sử dụng dịch vụ liệu từ xa ADO 152 Ngôn ngữ lập trình Visual Basic 6.0 GIỚI THIỆU VISUAL BASIC 6.0 1.1 1.1.1 LÀM VIỆC

Ngày đăng: 28/03/2016, 15:31

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan