Xem mẫu

  1. Active Server Pages - Chọn trình điều khiển ODBC tương ứng với các nguồn dữ liệu mà người dùng định truy xuất đến. Ví dụ, chọn Driver do Microsoft Access (*.mdb) à Finish. o Data Source name: Đặt tên cho nguồn dữ liệu o Description: Mô tả o Select: Chọn đường dẫn đến cơ sở dữ liệu o Chọn OK Kết quả cửa sổ ODBC Data Source: - Từ bây giờ, bạn có thể truy xuất lên cơ sở dữ liệu vừa khai báo bằng các đối tượng Connection, Command và Recordset của ADO Trung tâm phát triển phần mềm - ĐHĐN - 43 -
  2. Active Server Pages 3. Kiến trúc ADO Nguồn dữ liệu để chỉ mọi loại dữ liệu và nơi chứa thông tin có thể truy xuất được. ADO thiết kế cho mục đích truy xuất cơ sở dữ liệu tổng quát, không chỉ dùng xử lý các hệ cơ sở dữ liệu thuần tuý, bạn có thể sử dụng ADO để truy xuất cơ sở dữ liệu mail, dữ liệu file, ..... Application VC ++ VB Script Java ADO OLE DB E- mail CSDL File System Data Store 4. Đối tượng trong ADO Trong ADO, hệ thống đối tượng được nhấn mạnh, bởi vì phần lớn đối tượng ADO được tạo độc lập, điều này cho phép chỉ tạo và tìm những đối tượng cần thiết. ADO có 3 đối tượng chính cung cấp giao diện truy xuất cơ sở dữ liệu là Connection, Command và Recodset. Ngoài ra, ADO còn có các đối tượng và tập hợp khác như: Field, Property, Error,... a. Đối tượng Connection (kết nối) Đối tượng Connection cho phép thực hiện việc mở kết nối đến nguồn dữ liệu cần truy xuất. Thông qua đối tượng Connection bạn chỉ định trình cung cấp OLE DB, Providers sẽ dùng để tiếp cận dữ liệu. Đối tượng Connection trình bày phiên làm việc duy nhất với nguồn dữ liệu. Vớí hệ thống cơ sở dữ liệu client/server, nó tương đương với một kết nối mạng tới server. Lưu ý, để có thể kết nối và truy xuất vào nguồn dữ liệu, không bắt buộc bạn phải tạo đối tượng Connection. Các đối tượng khác như Command, Recordset, Record,...cũng cho phép mở trực tiếp kết nối. Tuy nhiên, sử dụng đối tượng Connection sẽ cho phép bạn tách biệt thao tác kết nối và thao tác truy cập dữ liệu. Hơn nữa, đối tượng Connection còn cung cấp thêm một số chức năng chuyên dụng khác như cho phép thực thi câu lệnh SQL tác động lên cơ sở dữ liệu(insert, update,...) hay xác nhận thay đổi (Comit)..... Một số thuộc tínhvà phương thức thường sử dụng ð Thuộc tính ConnectionString: Chuỗi chứa thông tin để kết nối dữ liệu nguồn, gồm 5 cặp giá trị: - Provider: Xác định tên trình cung cấp sẽ sử dụng với kết nối Tên nguồn dữ liệu ODBC sẽ kết nối - DSN: - UserName: Tên người dùng sẽ kết nối - Password: Mật mã truy xuất cơ sở dữ liệu Trung tâm phát triển phần mềm - ĐHĐN - 44 -
  3. Active Server Pages - File: tên tập tin chứa thông tin xác định kết nối. ð Phương thức Close: Đóng kết nối đang mở ð Phương thức Open: Mở một kết nối ð Phương thức Execute: Thi hành một câu lệnh SQL, vấn tin hay thủ tục lưu trữ. Phương thức này trả lại một tập mẩu tin b. Đối tượng Command (lệnh thực thi) Mặc dù có thể sử dụng đối tượng connection để thực thi các lệnh SQL nhưng tốt nhất nên dùng Connectiom cho mục đích kết nối. Đối tượng Command sẽ được dùng cho mục đích thực thi lệnh.Khi đối tượng connection thực thi lệnh, mặc định Connection sẽ khởi tạo và gọi đến đối tượng Command. Đối tượng Command có thể dùng cho hai mục đích: thực thi các lệnh SQL không cần nhận kết quả trả về (như insert, delete,..) hoặc thực thi các lệnh trả về tập Recordset như lệnh Select. c. Đối tượng Recordset (các mẩu tin) Recordset có thể nói là đối tượng được sử dụng thường xuyên nhất trong ADO. Đối tượng này cung cấp cho bạn kết quả trả về từ câu lệnh truy vấn một tập các mẩu tin. Trang ASP có thể dùng vòng lặp duyệt qua các mẩu tin này và hiển thị dữ liệu kết xuất ra trang Web phía trình duyệt. Ngoài ra, recordset còn cho phép lọc dữ liệu từ các mẫu tin, truy xuất đến từng trường hợp cụ thể của mẫu tin thông qua đối tượng Field hoặc danh sách các trường trong mẫu tin thông qua đối tượng Fields. Một số thuộc tính, phương thức thường sử dụng ð Thuộc tính AbsolutePage: Xác định trang để di chuyển con trỏ mẩu tin hiện hành tới ð Thuộc tính AbsolutePosition: Xác định mẫu tin để di chuyển mẩu tin hiện hành tới ð Thuộc tính BOF: Con trỏ mẩu tin hiện hành có ở đầu tập mẩu tin hay không ð Thuộc tính EOF: Con trỏ mẩu tin hiện hành có ở cuối tập mẩu tin hay không ð Thuộc tính PageCount: Số trang trong tập mẩu tin ð Thuộc tính PageSize: Số mẩu tin trong một trang ð Thuộc tính RecordCount: Tổng số mẫu tin trong tập mẩu tin ð Thuộc tính AddNew: Thêm mẩu tin mới với các giá trị xác định ð Phương thức Close: Đóng tập mẫu tin ð Phương thức Delete: Xoá mẩu tin hiện hành ð Phương thức MoveFirst: Di chuyển con trỏ mẩu tin hiện hành đến mẩu tin đầu tiên ð Phương thức MoveLast: Di chuyển con trỏ mẩu tin hiện hành về cuối mẩu tin trong tập mẩu tin. ð Phương thức MoveNext: Di chuyển con trỏ mẩu tin hiện hành tới mẩu tin kế tiếp trong tập mẩu tin. ð Phương thức Open: Mở tập mẩu tin ð Phương thức Update: Cập nhật mẩu tin hiện hành Trung tâm phát triển phần mềm - ĐHĐN - 45 -
  4. Active Server Pages d. Đối tượng Error Chứa các chi tiết về lỗi truy xuất dữ liệu liên quan với một toán tử đơn liên quan ADO. e. Đối tượng Field Trình bày một cột dữ liệu với kiểu dữ liệu chung f. Đối tượng Parameter Trình bày tham số hay đối số được kết hợp với một đối tượng Command dựa trên vấn tin hay thủ tục lưu trữ. g. Đối tượng Property Giới thiệu đặc tính động của đối tượng ADO do nhà cung cấp định nghĩa. 5. Kết nối nguồn dữ liệu a. Kết nối chuỗi Chuỗi kết nối dùng để cung cấp thông tin cho đối tượng Connection biết đặc điểm của cơ sở hay nguồn dữ liệu mà ADO cần truy xuất. § Cơ sở dữ liệu MS Access ConnStr=”Provider=Microsoft.Jet.OLEDB.4.0; Data source=C:\giaotrinh\dulieu.mdb ” Set conn=server.CreateObject(“ADODB.Connection”) Conn.open connStr § Cơ sở dữ liệu MS Access thông qua trình điều khiển ODBC ConnStr=”Drive=Microsoft Access Drive (*.mdb); DBQ=C:\giaotrinh\dulieu.mdb” Set conn=server.CreateObject(“ADODB.Connection”) Conn.open connStr § Cơ sở dữ liệu MS SQL Server ConnStr=”Provider=SQLOLEDB;Data Source=servername; Initial catalog=database_name; User ID=user_name; pwd=User_password” Set conn=server.CreateObject(“ADODB.Connection”) Conn.open connStr Ví dụ: Ứng dụng Bookshop kết nối vào cơ sở dữ liệu SQL server với tên database là bookshop, username là sa, pwd trống, như sau: b. Đóng kết nối Sau khi mở kết nối và xử lý xong dữ liệu, nên đóng kết nối lại bằng phương thức close của đối tượng Connection. Ví dụ: Trung tâm phát triển phần mềm - ĐHĐN - 46 -
  5. Active Server Pages ... Rs.open “Select * from Products”, conn ...... ‘Đóng kết nối conn.close Đóng kết nối sẽ giải phóng được tài nguyên, giúp cơ sở dữ liệu thao tác và xử lý nhanh hơn. Thực tế khi gọi phương thức close của Connection, kết nối sẽ được trả về cho bộ quản lý tài nguyên. Vì mở một kết nối sẽ chiếm tài nguyên và đòi hỏi hệ thống phải quản lý chặt chẽ, do đó nếu đã hoàn tất quá trình xử lý liên quan đến cơ sở dữ liệu, nên gọi phương thức close để trả kết nối về cho hệ thống, phục vụ cho những trang khác. 6. Sử dụng Recordset a. Tạo Recordset Recordset là đối tượng thường sử dụng nhất trong ADO. Recordset cho phép xem và trích rút dữ liệu theo dạng bảng. Đối tượng Recordset tạo ra như sau: Set rs = Server.CreateObject (“ADODB.recordset ”) Để rút trích dữ liệu từ một bảng nào đó trong cơ sở dữ liệu, thường kết hợp đối tượng Connection vào câu lệnh SQL Select trong phương thức Open của recordset. Ví dụ: để lấy về tập các mẫu tin trong bảng Sinhvien của ứng dụng, bạn gọi phương thức Open như sau: Rs.Open “Select * from Sinhvien”, conn b. Duyệt các mẫu tin trong Recordset Để đi đến từng mẫu tin của recordset, ta dùng vòng lặp while và kiểm tra xem đã đến mẫu tin cuối cùng chưa dựa vào thuộc tính EOF (end of file). Ví dụ: In ra danh sách các loại hàng trong bảng Loaihang c. Truy xuất các trường của mẩu tin Bạn có thể chỉ định trực tiếp tên trường cần truy xuất ngay trong đối tượng Recordset. Ví dụ: Tuy nhiên bạn có thể sử dụng đối tượng tập hợp Fields để truy xuất nội dung của một trường trong mẫu tin theo nhiều cách. Những cách sau đều hợp lệ và tương đương nhau: Rs(“hoten”) Rs.Fields(“hoten”).Value Rs.Fields(1).Value Trung tâm phát triển phần mềm - ĐHĐN - 47 -
  6. Active Server Pages Nếu muốn duyệt qua tất cả các trường trong mẩu tin, bạn có thể dùng lệnh For each theo cách tổng quát sau: For each fld In rs.Fields Response.write fld.name+ “:” + Fld.Value + “” Next d.Lọc các mẫu tin trong recordset Điều kiện lọc các mẫu tin (chỉ chọn những mẫu tin thoả mãn điều kiện nhất định) được thực hiện ngay trên mệnh đề where của câu lệnh SQL khi gọi phương thức Open của Recordset. Ví dụ: SqlStr= “Select * from sinhvien where nsinh=’”+Danang+ “’” Rs.open sqlStr, conn 8. Ứng dụng Trong giới hạn giáo trình này, cơ sở dữ liệu sử dụng là Microsoft Access. Tạo cơ sở dữ liệu Access tên Dulieu, chứa bảng Sinhvien như sau: Table: Sinhvien Kiểu số, là khoá của bảng(Number) ID Kiểu chuỗi(Text) Holot Kiểu chuỗi(Text) Ten Kiếu ngày(Date/time) Ngaysinh a. Hiển thị dữ liệu từ một bảng(table) Sinh vien
nguon tai.lieu . vn