Tài liệu Lập trình ADO tren Visual 6.0 pdf

35 512 1
Tài liệu Lập trình ADO tren Visual 6.0 pdf

Đ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

ADO MONDAY, 28 JANUARY 2008, 06:05:26 ADO Hãy đọc trước bạn bước vào giới ADO ADO gì? Tơi xin miễn bàn cụ thể, bạn tham khảo trang www.vovisoft.com hay trang khác Tơi xin nói ngắn gọn: ADO viết tắt chữ ActiveX Data Object Đây đối tượng giúp bạn làm việc với nhiều kiểu liệu khác Giống ODBC (Open DataBase Connectivity), kỹ thuật lập trình với OLE DB địi hỏi phải thực lệnh phức tạp cấp thấp API Chính lý này, Microsoft đưa lớp giao tiếp lập trình cấp cao ADO xây dựng dựa kỹ thuật OLE DB cho phép lập trình nhanh ứng dụng liên kết CSDL (Cơ sở liệu) CÁC ĐỐI TƯỢNG LẬP TRÌNH ADO CƠ SƠ Lớp giao tiếp lập trình liệu cấp cao ADO cung cấp tập hợp đối tượng giúp dễ dàng làm việc với nguồn liệu khác Trong đối tượng có đối tượng cần tìm hiểu, là: Connection, Recordset, Command, Field (ngồi cịn có: Parameter, Property, Error) Connection Đây đối tượng sử dụng để tạo liên kết chương trình với CSDL Sau tạo liên kết xong thực thao tác xử lý liệu CSDL Để tạo lập liên kết Connection cần xác định rõ thông tin cần thiết bao gồm: • Provider: Tên chương trình giao tiếp liệu (OLE DB Provider) • Data source: Tên đầy đủ tập tin CSDL hay tên nguồn liệu ODBC cần liên kết • Username: Đây thông tin tùy chọn quy định tên người dùng tổ chức bên CSDL Nó phụ thuộc vào lọai CSDL, với CSDL Access bỏ qua thơng tin • Password: Chuỗi mật tương ứng với User name nhằm thâm nhập CSDL Command Đối tượng Command cho phép chương trình gọi thực câu lệnh truy vấn SQL CSDL hay gọi thực thủ tục xử lý cài đặt CSDL (Stored procedure) Nếu thủ tục xử lý CSDL có nhận trả giá trị, dùng đối tượng Parameter Với CSDL Access, truy vấn xây dựng sẵn tập tin MDB (bao gồm truy vấn chọn, thêm, xóa, sửa, ) xem stored procedure Recordset Là đối tượng lưu trữ tập họp mẫu tin chọn từ bảng có CSDL Thơng qua đối tượng Recordset, thực xử lý hiển thị liệu, cập nhật, tìm kiếm, với CSDL nối kết Thơng thường Command có câu lệnh truy vấn thực dạng SELECT trả mẫu tin (Recordset) Trong trình lập trình CSDL với Visual Basic 6.0 tạo Recordset nhiều cách thời điểm khác như: dùng ADO control, DataEnvirement hay dùng lệnh Đối tượng Field Là đối tượng cho phép truy xuất làm việc với trường (cột) liệu có mẫu tin Recordset Với đối tượng field có hai thuộc tính cần quan tâm, là: Name (tên trường liệu) Type (kiểu liệu trường) Bây vào thuộc tính phương thức đối tượng CONNECTION Sau tạo xong liên kết liệu, tạo đối tượng khác dựa liên kết Thuộc tính liên kết liệu: Trước thực tạo liên kết liệu, cần khai báo tham số cần thiết cho đối tượng Connection tên server, tên sở liệu, tên người dùng mật Sau thuộc tính quan trọng cần khai báo tạo liên kết liệu _Thuộc tính ConnectionString: chuỗi ký tự chứa thông tin cần thiết cho việc nối kết liệu Chuỗi ký tự gồm thành phần thơng tin như: _Provider: tên trình liên kết liệu OLE DB _Server: tên máy chủ chứa CSDL cần kết nối _Use ID: mã số người dùng _Password: mật người dùng _Data Source: nguồn liệu kết nối Ví dụ kết nối với sở liệu SQL Server có tên QLTV có chỗi sConnection sau: sConnection="Provider=SQLOLEDB;" & "Server=ServerNT; User ID=MyID; " & "Password=MyPWD; Data Source=QLTV" Một số connection string tham khảo từ trang web Erlandsen Data Consulting: Kết nối vào Access database dùng standard security: cn.Open "driver={Microsoft Access Driver (*.mdb)};" & _ "dbq=c:\foldername\databasename.mdb;uid=admin;pwd=" Kết nối vào Access database dùng workgroup system database: cn.Open "driver={Microsoft Access Driver (*.mdb)};" & _ "dbq=c:\foldername\databasename.mdb;" & _ "systemdb=c:\foldername\databasename.mdw;", _ "userid", "userpassword" Kết nối vào Access database exclusively: cn.Open "driver={Microsoft Access Driver (*.mdb)};" & _ "dbq=c:\foldername\databasename.mdb;" & _ "exclusive=1;uid=admin;pwd=" Kết nối vào SQL server dùng standard sequrity: cn.Open "driver={SQL Server};" & _ "server=servername;database=databasename;" & _ "uid=userid;pwd=userpassword" Kết nối vào SQL server dùng trusted connection security: cn.Open "driver={SQL Server};" & _ "server=servername;database=databasename;" & _ "uid=;pwd=" Kết nối vào SQL server từ name password: cn.Properties("Prompt") = adPromptAlways cn.Open "driver={SQL Server};" & _ "server=servername;database=databasename" Connecting to a Sybase database using the Sybase System 12 driver: cn.Open "driver={SYBASE ASE ODBC Driver};" & _ "srvr=servername;" & _ "uid=userid;pwd=userpassword" Connecting to a Sybase database using the Sybase System 11 driver: cn.Open "driver={SYBASE SYSTEM 11};" & _ "srvr=servername;" & _ "uid=userid;pwd=userpassword" Connecting to an Oracle database using the current Microsoft ODBC driver: cn.Open "driver={Microsoft ODBC for Oracle};" & _ "server=servername.world;" & _ "uid=userid;pwd=userpassword" Connecting to an Oracle database using the Oracle ODBC driver: cn.Open "driver={Oracle ODBC Driver};" & _ "dbq=databasename;" & _ "uid=userid;pwd=userpassword" Bạn phải định nghĩa dbq databasename file tnsnames.ora Kết nối vào Excel workbook: cn.Open "driver={Microsoft Excel Driver (*.xls)};" & _ "driverid=790;dbq=c:\foldername\workbookname.xls;" & _ "defaultdir=c:\foldername" Kết nối vào dBase database: cn.Open "driver={Microsoft dBase Driver (*.dbf)};" & _ "driverid=277;dbq=c:\foldername" ' specify the filename when you open the recordset rs.Open "select * from tablename.dbf", cn, , , adCmdText Bạn phải cần Borland Database Engine (BDE) để cập nhật file dBase Kết nối vào Paradox database: cn.Open "driver={Microsoft Paradox Driver (*.db )};" & _ "driverid=538;fil=Paradox 5.X;" & _ "defaultdir=c:\foldername\;" & _ "dbq=c:\foldername\;collatingsequence=ASCII" The extra space character after *.db in the driver name is necessary Bạn phải cần Borland Database Engine (BDE) để cập nhật file ISAM Kết nối vào file text: cn.Open "driver={Microsoft Text Driver (*.txt; *.csv)};" & _ "dbq=c:\foldername\;" & _ "extensions=asc,csv,tab,txt,log,*." rs.Open "select * from filename.csv", cn, adOpenStatic, adLockReadOnly, adCmdText Định dạng file text định nghĩa file schema File thông tin schema luôn đặt tên Schema.ini luôn đặt thư mục với file nguồn File cung cấp thông tin định dạng tổng quát file, tên cột kiểu liệu File Schema.ini luôn yêu cầu để lấy liệu từ fixed-width data Một số ví dụ file Schema.ini Ví dụ file Schema.ini cho file filename.txt chứa tên cột dùng đầu tiên: [filename.txt] Format=TabDelimited ColNameHeader=True MaxScanRows=0 CharacterSet=ANSI Ví dụ file Schema.ini cho filefilename.txt chứa dấu ";" phân cách trường liệu, hàng chứa tên cột liệu: [filename.txt] Format=Delimited(;) ColNameHeader=True MaxScanRows=0 CharacterSet=ANSI Ví dụ file Schema.ini cho filefilename.txt chứa fixed width data khơng có tên cột liệu dòng đầu: [filename.txt] Format=FixedLength ColNameHeader=False Col1=FieldName1 Char Width 30 Col2=FieldName2 Date Width 15 Col3=FieldName3 Integer Width 15 Col4=FieldName4 Float Width 20 CharacterSet=ANSI _Thuộc tính CursorLocation: thuộc tính quy định trỏ liên kết liệu tạo máy chủ hay máy Các số dùng cho thuộc tính gồm: • adUseServer: trỏ liên kết liệu tạo máy chủ Mọi sửa đổi người dùng khác mạng thể tức thời liệu máy trạm • adUseClient: trỏ liên kết liệu tạo máy trạm Mọi sửa đổi người dùng khác mạng liệu máy trạm truy xuất lại Với kiểu trỏ này, liệu máy trạm có thuận lợi mà kiểu adUseServer khơng có Thuộc tính chung cho Connection lẫn Recordset, nghĩa tất Recordset tạo từ Connection có kiểu trỏ không qui định tường minh 2.Tạo đối tượng Connection dùng lệnh Tại thời điểm ứng dụng thực thi (runtime), tạo Connection với bước sau: 2.1 Bước1: Khai báo tham chiếu đến thư viện ADO Để sử dụng kỹ thuật ADO, ta phải khai báo tham chiếu đến thư viện ADO ứng dụng sau: trước đây, làm việc với mẫu tin điều khiển ADO Data Control thông qua cú pháp: .Recordset Hoặc khai báo biến kiểu ADODB.Recordset, sau gán biến Recordset với mẫu tin có điều khiển ADO Data Control Dim rst As New ADODB.Recordset Set rst=.Recordset Tạo Recordset lệnh Làm việc với mẫu tin điều khiển ADO Data Control có nhiều hạn chế, bật phải đặt điều khiển ADo form mẫu tin phải tạo trước thời điểm thiết kế Môi trường lập trình chun nghiệp địi hỏi người phải tạo xử lý đối tượng mơ hình ADO, đặc biệt đối tượng Recordset, thời điểm chạy chương trình Phần nội dung trình bày trình bày cách khai báo khởi tạo đối tượng Recordset thời điểm chạy chương trình Để làm việc với đối tượng mẫu tin Recordset, cần thực bước sau: Bước 1: Khai báo biến mẫu tin Dim rst As ADODB.Recordset Bước 2: Cấp phát vùng nhớ trước làm việc với rst Set rst=New ADODB.Recordset Bước 3: Khởi tạo giá trị cho biến mẫu tin rst Sử dụng phương thức Open theo cú pháp để khởi tạo cho biến Recordset, rst sau: rst.Open [Source], [Connection], [Type], [Lock], [Option] Trong đó: • Source: chuỗi xác định nguồn liệu mẫu tin tên bảng hay chuỗi câu lệnh SQL • Connection: mối kết nối liệu dùng • Type: số lọai Recordset Thông thường, viết ứng dụng chạy máy đơn, thường dùng lọai adOpenStatic • Lock: thuộc tính xác định trạng thái cho phép khóa liệu cập nhật mẫu tin Các trị thuộc tính Lock gồm: Trị Ý nghĩa adLockBatchOptimistic |4 |Với kiểu khóa cập nhật nhiều mẫu tin lúc mẫu tin cập nhật bị khóa phát lệnh cập nhật adLockOptimistic |3 |Cập nhật mẫu tin mẫu tin cập nhật bị khóa phát lệnh cập nhật adLockPessimistic |2 |Với kiểu này, mẫu tin bị khóa từ chuyển sang trạng thái sửa đổi hay thêm Chỉ sử dụng kiểu khóa với thuộc tính CursorLocation recordset adUseServer adLockReadOnly |1 |Chỉ cho phép đọc Việc quy định thuộc tính Lock Recordset quan trọng Nếu cần tạo mẫu tin để tính tóan, dùng adLockReadOnly Trong đó, muốn tạo mẫu tin để hiển thị cập nhật liệu, nên dùng giá trị adLockOptimistic, adLockBatchOptimistic hay adLockPessimistic • Option: thuộc tính xác định kiểu nguồn liệu Source, có trị sau: Hằng trị |Ý nghĩa |Trị adCmdTable | Khi Source tên bảng, tên bảng Query Access |2 adCmdText |Khi Source truy vấn SQL |1 adCmdStoreProc|Khi Source Stored Procedure SQL SERVER |4 Trong số trường hợp, ghép bước bước thành bước cách vừa khai báo vừa cấp phát vùng nhớ cú pháp sau: Dim rst As New ADODB.Recordset Các xử lý với mẫu tin Thuộc tính State Tương tự thuộc tính State trình bày phần Connection, thuộc tính State mẫu tin Recordset trạng thái mẫu tin mở hay đóng Thuộc tính có trị sau: • adStateClosed (0) trạng thái đóng • adStateOpen (1) trạng thái mở Đóng mở mẫu tin Để đóng liên kết liệu đối tượng Recordset với liệu thật có sở liệu, dùng phương thức Close theo cú pháp Rst.Close Sau đó, cần, tạo lại liên kết dòng lệnh đây: If rst.State=adStateClosed then rst.Open Truy xuất trường liệu Khi cần truy xuất giá trị trường Recordset, dùng cách sau: ("").Value !.Value (index).Value Với Index số thứ tự trường muốn truy xuất Giá trị Index tính từ đến số trường -1 Các thuộc tính mẫu tin thường dùng • Thuộc tính Recordcount (trị Long, đọc): thuộc tính chứa số mẫu tin có mẫu tin Thuộc tính thường cập nhật có di chuyển mẫu tin hành Recordcount có trị -1 không xác định số mẫu tin hay kiểu trỏ adOpenForwardOnly • Thuộc tính BOF EOF _Thuộc tính BOF: thuộc tính có giá trị True mẫu tin hành đứng trước mẫu tin mẫu tin Recordset Lúc này, thao tác di chuyển mẫu tin trước, xóa mẫu tin hành, truy xuất giá trị field tạo lỗi Ở vị trí khác, thuộc tính BOF có giá trị False _Thuộc tính EOF: tương tự thuộc tính BOF, thuộc tính EOF mẫu tin hành có đứng sau mẫu tin cuối hay khơng Nếu đúng, EOF có trị True, ngược lại có trị False Cũng BOF, EOF True, thao tác di chuyển mẫu tin sau, xóa mẫu tin hành, truy xuất giá trị field tạo lỗi • AbsolutePostion (trị Long): thuộc tính chứa số thứ tự mẫu tin hành mẫu tin Recordset, có đặc biệt sau: _adPosUnknown: (-1) Recordset rỗng, vị trí hành khơng xác định _adPosBOF: (-2) vị trí mẫu tin hành BOF, nghĩa thuộc tính BOF True _adPosEOF: (-3) vị trí mẫu tin hành EOF, nghĩa thuộc tính EOF True • BookMark: (Trị Variant) thuộc tính lưu trữ thơng tin vị trí mẫu tin hành Recordset Chúng ta thường dùng thuộc tính để lưu trữ phục hồi vị trí mẫu tin hành mẫu tin xử lý cập nhật liệu Mỗi mẫu tin có trị Bookmark khác Chú ý: Sự khác biệt AbsolutePosition BookMark: xác định vị trí mẫu tin hành, sau huỷ mẫu tin nằm trước vị trí hành, giá trị AbsolutePosition bị thay đổi cịn BookMark khơng • EditMode: (chỉ đọc) tình trạng mẫu tin hành, có trị sau: Hằng Trị Ý nghĩa adEditNone Tình trạng bình thường adEditInProgress Tình trạng sửa đổi chưa cập nhật adEditAdd Tình trạng thêm chưa cập nhật adEditDelete Tình trạng đánh dấu hủy chưa cập nhật Kiểm tra Recordset rỗng Thông thường xử lý mẫu tin Recordset có tác dụng mẫu tin chứa số liệu Có xử lý xóa, sửa, lọc liệu không họat động mẫu tin rỗng Chính lý này, số xử lý, kiểm tra mẫu tin Recordset xử lý theo cách dựa vào cú pháp sau: If rst.BOF and rst.EOF then Else End If Hoặc If rst.BOF and rst.EOF Then End If ,=,

Ngày đăng: 19/02/2014, 05:20

Từ khóa liên quan

Mục lục

  • ADO căn bản

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

  • Đang cập nhật ...

Tài liệu liên quan