1. Trang chủ
  2. » Công Nghệ Thông Tin

Đối tượng dữ liệu activex

11 310 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 210,74 KB

Nội dung

Đối tượng liệu ActiveX Đối tượng liệu ActiveX Bởi: FPT Software 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 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 Tìm hiểu cấu trúc OLEDB / 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 1/11 Đối tượng liệu ActiveX Sử dụng ADO OLE DB để tăng cường truy cập thông tin sở liệu 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 2/11 Đối tượng liệu ActiveX 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 Cài đặt thiết lập tham chiếu đến ADO ứ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 3/11 Đối tượng liệu ActiveX Sử dụng ADO với thư viện đối tượng truy cập 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 Dùng đối tượng connection ADO để kết nối với nguồn liệu Vị trí đối tượng Connection mô hình ADO:(Xem hình dưới): 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 Chỉ trình cung cấp OLE DB 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: 4/11 Đối tượng liệu ActiveX 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 = ;” 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 5/11 Đối tượng liệu ActiveX Làm việc với 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 Forward-only Không dùng trỏ - ta có thểchuyển phía trước Recordset; sử dụng phương adOpenForwardOnly thức MovePrevious MoveFirst sinh lỗi Keyset(TrongADO gọi adOpenKeyset dynaset) Mô tả Ta tháy ghi dongười dùng khác thêm vào, họ 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 6/11 Đối tượng liệu ActiveX Dynamic Static(TrongDAO gọi snapshot) adOpenDynamic Ta thấy toàn thay đổi dữliệu người sử dụng khác thực ta mở Recordset; kiểu trỏ hiệu mạnh mẽ adOpenStatic Bản toàn liệu mộtRecordset; kiểu đặc biệt hữu dụng 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 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 7/11 Đối tượng liệu ActiveX adDelete Bản ghi xoá Recordset adHoldRecords Bản ghi trả từ sở liệu mà không cần ghi sửa đổihiện 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ứcUpdateBatch Ta nạp sửa đổi nhiều mẫu tin hoạt động nhất, cải tiến hiệu Client/Server Khoá ghi 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, và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 Updatehay 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 8/11 Đối tượng liệu ActiveX Sử dụng đối tượng Recordset ADO để thao tác với 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 Vị trí Recordset ADO mô hình đối tượng ADO: 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 Dùng đối tượng Recordset để cập nhật thêm ghi 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 9/11 Đối tượng liệu ActiveX ? 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 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 Sử dụng dịch vụ liệu từ xa 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ở 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 10/11 Đối tượng liệu ActiveX ? 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ờ 11/11 [...].. .Đối tượng dữ liệu ActiveX ? Tạo một hộp văn bản, một nút lệnh, và một danh sách trên 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

Ngày đăng: 19/10/2016, 22:31

w