Đề tài Web quản lý nhân sự

Phụ lục

 

Lời mở đầu 3

 

Phần I_Cơ bản về Web và các công cụ xây dựng Web 4

 

I.KháI niệm cơ bản về Web 4

 

II.Tạo trang tài liệu động 5

2.1Kĩ thuật tạo trang bằng ngôn ngữ Script phía Server 5

2.2Các kĩ thuật tạo trang động của Microsoft 6

 

III.Đối tượng Request và Response của ASP 8

1.Tổng quan về các đối tượng Request và đối tượng Reponse 8

2.Tạo FORM va QueryString 12

 

VI.Các đối tượng trong ASP 15

1.Đối tượng Session 15

2.Đối tượng Application 17

3.Tìm hiểu File cấu hình khởi động Globalasa 18

4.Các đối tượng nội tại của ASP(BUILD_IN OBJECT) 19

5.Các đối tượng tiện ích( INSTALLABLE_COMPONENT) 21

 

V.ADO (ACTIVE DATA OBJECT) 23

1.Tại sao sử dụng ADO và ADO là gì? 23

2.Mô hình đối tượng ADO 2.5 27

3.Kết nối với nguồn dữ liệu 28

 

VI.Ưu và khuyết điểm của ASP 29

1.Ưu điểm 29

2.Khuyết điểm 29

 

VII.Giới thiệu ASP.NET: 30

1.Giới thiệu chung 30

2.Ưu điểm 30

3.Khuyết điểm 30

 

VIII.Giới thiệu về PHP 31

1.PHP là gì? 31

2.Lịch sử phát triển của PHP 31

3.PHP ở cấp doanh nghiệp 34

4.Ưu và khuyết điểm 35

 

Phần II_Phân tích và thiết kế HTTT Quản lí nhân sự 36

1.Khảo sát hệ thống 36

2.Phạm vi nghiên cứu của đề tài 38

3.Đối tượng nghiên cứu của đề tài 38

4.Sơ đồ luồng dữ liệu 39

5.Sơ đồ ngữ cảnh của hệ thống QLNS 41

6.Sơ đồ lưồng dữ liệu (DFD) của hệ thống 41

7.Sơ đồ quan hệ thực thể (Relationship ) 46

8.Thiết kế các bảng(CSDL) 46

9.Một số giao diện của trang Web 50

 

Phụ lục:Hướng dẫn cài đặt trang Web QLNS 52

 

 

 

 

docx57 trang | Chia sẻ: netpro | Lượt xem: 3285 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Web quản lý nhân sự, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
trang ASP nào đó, thực hiện một số tương tác (như xem thông tin, cập nhật dữ liệu…), đóng ứng dụng. Các thao tác này được xem là hoạt động trong một phiên làm việc (session). Đối với các ứng dụng desktop truyền thống, từ khi bắt đầu khởi động cho đến khi chấm dứt chương trình, máy tính có thể hiểu được chủ thể đang tương tác với nó. Tuy nhiên, với Internet và các máy chủ Web Server thì không thể biết được bạn là ai và những trạng thái gì bạn đang thực hiện. Nguyên do là giao thức HTTP của Internet là giao thức phi trạng thái. Khi một yêu cầu về tài nguyên hoàn tất giữa trình duyệt và trình chủ Web Server, trình duyệt sẽ đóng kết nối HTTP và không nhớ gì về trạng thái trước đó. Trình chủ phải có cách nào đó biết được sự kết nối này và lưu lại các trạng thái phục vụ cho lần kết nối tiếp theo. Để giải quyết vấn đề này, ASP tạo ra một định danh duy nhất gọi là cookie cho mỗi kết nối của người dùng. Khi trình duyệt phía máy khách yêu cầu một trang thông tin, trình chủ sẽ trả về trang thông tin cùng với mẩu cookie. Trình duyệt phía máy khách sẽ không hiển thị cookie khi nhận được phản hồi từ trình chủ. Thông tin của cookie là thông tin ẩn sẽ được trình duyệt trả về cho trình chủ trong lần kết kế tiếp. Sựa vào cookie trình chủ Web Server sẽ lưu thông tin trạng thái của tập hợp các trang được gọi trong những lần kết nối sau đó. Giao tiếp quản lý công việc này được thực hiện thông qua đối tượng Session. Trình chủ Web Server sẽ tạo mới một đối tượng Session cho mỗi kết nối và duy trì Session này trong suốt quá trình làm việc vaàcòn hiệu lực của Session. Thông thường Session được dùng để lưu thông tin riêng biệt của người dùng thông qua các biến (gọi là biến Session). Các biến này cũng sẽ được huỷ khi Session hết hạn. 1.1 Bắt đầu và kết thúc một Session Trình chủ bắt đầu một Session khi: Người dùng lần đầu tiên triệu gọi file .asp Trang ASP khai báo lưu trữ biến vào đối tượng Session. Trình chủ kết thúc và huỷ bỏ đối tượng Session khi: Người dùng không triệu gọi các trang của ứng dụng hoặc cập nhật làm mới (refresh) lại thông tin của trang trong một thời gian nhất định (thời gian này còn gọi là timeout của Session). Khi một Session hết thời gian hiệu lực nó sẽ được xem như hết hạn sử dụng (expire), tất cả các biến lưu trong Session và bản thân đối tượng Session sẽ bị huỷ bỏ. Bạn có thể kiểm tra và tăng thời gian Timeout của Session tính bằng giây như sau: <% Session.Timeout = 500 %> Việc quyết định thời gian tồn tại của Session là tuỳ theo mục đích của ứng dụng. Nếu bạn quy định thời gian sống của Session quá dài, trình chủ phái cấp nhiều tài nguyên để quản lý Session. Tuy nhiên nếu thời gian Session lưu quá ngắn, người dùng sẽ không đủ thời gian tương tác và làm việc với ứng dụng Web. 1.2 Lưu trữ và truy xuất biến Session Một trong những tính năng thường dùng nhất cảu đối tượng Session là lưu trữ biến có giá trị cục bộ trong phiên kết nối. Ví dụ: <% Session(“username”) = “name” Session(“password”) =”pass” Session(“age”) = 24 %> Sau khi thiết lập biến Session, có thể truy xuất nội dung biến từ bất kỳ trang ASP nào bên trong ứng dụng Web. Có thể dùng Session để lưu các tuỳ chọn của người dùng để các trang trong ứng dụng căn cứ vào đó biết được trạng thái tương tác hiện thời của người dùng. Để loại bở một biến Session không sử dụng nữa, có thể sử dụng thuộc tính Contents của Session. Thuộc tính Contents nắm giữ tất cả cá tên và nội dung hiện hành của biến mà Session quản lý. 1.3 Duyệt nội dung đối tượng Session Có thể duyệt qua tấ cả các biến Session chứa trong tập hợp Contents bằng vòng lặp For each như sau: <% Dim 1 Session(“Myvar”) = “Here” Session(“Myage”) = 24 For Each I in Session.Contents Response.Write(Session.Contents(i) & “”) Next %> 1.4 Định danh Session Mỗi Session mang một định danh (SessionID) phân biệt với các Session đang hoạt động khác. Có thể gọi thuộc tính SessionID để lấy về định danh của Session 2. ĐỐI TƯỢNG APPLICATION Trong ASP, ứng dụng (application) được định nghĩa là một tập hợp các file và tài nguyên (như .asp, .html, .gif, .txt …) kết hợp với nhau để xử lý hay phục vụ cho một mục đích nào đó. ASP xử dụng Application để biểu diễn cho ứng dụng, thông qua ứng dụng Application có thể ràng buộc và chuyển đổi thông tin giữa các trang ASP trong ứng dụng và giữa các phiên kết nối Session với nhau. 2.1 Biến Application Khác với biến Session chỉ có giá trị cục bộ đối với mỗi phiên kết nối của người dùng, biến Application có giá trị toàn cục đối với tất cả các trang và nhìn thấy cũng như truy xuất được bởi tất cả Session khác nhau. Do phạm vi toàn cục nên biến Application thường dùng để lưu giữ các biến sử dụng cho toàn bộ Web site như bộ đếm Counter cho biết hiện tại có bao nhiêu khách đã viếng thăm trang Web, lưu các biến chứa thông tin về kết nối cơ sở dữ liệu … Có thể khởi tạo biến Application bất kỳ khi nào, ngay trong trang ASP hiện hành hoặc trong file global.asa dựa vào sự kiện Application_OnStart( ). 2.2 Duyệt qua nội dung các biến Application Tương tự đối tượng Session, có thể sử dụng thuộc tính Contents để duyệt qua tập hợp các biến Application hoặc sử dụng thuộc tính Count để đếm số biến mà đối tượng Application hiện đang nắm giữ. Ví dụ: <% Dim i Dim j j = Application.Contents.Count For i=1 to j Response.Write(Application.Contents (i) &””) Next %> 2.3 Khóa thao tác truy xuất biến của Application Do đối tượng Application cung cấp cơ chế truy xuất toàn cục nên có thể xảy ra tranh chấp biến hoặc không đồng bộ hóa nội dung biến. Ví dụ, nếu người dùng trong một Session thử tăng giá trị cảu biến Application trong khi người dùng trong Session lại giảm giá trị của biến. Để an toàn, có thể thực hiện thao tác khóa (lock) trước khi truy cập biến chứa trong Application. Bằng cách này, các Session khác sẽ không thể thay đổi được nội dung biến Application trừ Session đang tương tác. Sau khi quá trình thay đổi đã hoàn tất, gọi phương thức UnLock để tháo khóa cho phép các Session khác tiếp tục quyền truy xuất. Ví dụ: <% ‘ Khóa không cho các Session khác truy cập vào Application Application.Lock ‘ Thực hiện các thay đổi giá trị biến Application tại đây Application(“appCounter”) = Application(“appCounter”) + 1 ‘ Thoát khóa. Hoàn tất tác vụ thay đổi nội dung biến Application Application.UnLock %> 3.TÌM HIỂU FILE CẤU HÌNH KHỞI ĐỘNG GLOBAL.ASA 3.1 Xử lý sự kiện và khởi tạo biến trong file global.asa ASP cung cấp file cấu hình global.asa, nơi cho phép đặt các đoạn mã script xử lý sự kiện hay triệu gọi các hàm, thủ tục, biến mang tính toàn cục. Lưu ý, file global.asa phải được đặt trong thư mục gốc của ứng dụng. Mỗi ứng dụng Web chỉ được phép có duy nhất một file global.asa. Khi lần đầu tiên trang asp của ứng dụng được yêu cầu, trình chủ IIS sẽ đọc và nạp thông tin trong file global.asa. Phát sinh và xử lý các sự kiện được cài đặt trong file global.asa, sau đó chuyển giao quyền xử lý lại cho trang ASP. File global.asa cho phép cài đặt và xử lý các sự kiện sau: Application_OnStart: Sự kiện này phát sinh khi người dùng đầu tiên triệu gọi bất kỳ trang nào trong ứng dụng Web. Khi trình chủ IIS khởi động lại hoặc khi nội dung file global.asa bị hiệu chỉnh thì sự kiện này sẽ được phát sinh trở lại. Sau khi sự kiện này kết thúc quá trình xử lý, trình chủ IIS sẽ bắt đầu thực thi đến sự kiện Session_OnStart chuẩn bị cho phiên kết nối. Các biến Application thường được khởi tạo bên trong sự kiện này. Session_OnStart: Sự kiện này phát sinh mỗi khi có một người dùng mới yêu cầu trang ASP của ứng dụng Web trong lần đầu tiên. Session_OnEnd: Sự kiện này được gọi khi phiên làm việc Session của người dùng chấm dứt. Phiên làm việc được xem là chấm dứt khi nó hết hạn (timeout hay expired), mặc định cho thời gian hết hạn là 20 phút. Application_OnEnd: Sự kiện này phát sinh khi không còn người dùng nào tương tác với ứng dụng Web của bạn nữa. Thông thường sự kiện này được gọi khi trình chủ IIS ngừng hoạt động (Stop). Sự kiện này giúp ứng dụng Web lưu các thông tin trạng thái cần thiết xuống đĩa cứng phục vụ cho quá trình hoạt động của trình chủ sau đó. Cài đặt thủ tục xử lý các sự kiện này trong file global.asa như sau: Sub Application_OnStart ………..Code End sub Sub Application_OnEnd ………..Code End sub Sub Session_OnStart ………..Code End sub Sub Session_OnEnd ………..vnscript code End sub 4. CÁC ĐỐI TƯỢNG NỘI TẠI CỦA ASP (BUILD-IN OBJECT) Tóm tắt ASP cung cấp cho ta 7 đối tượng nội tại cơ bản sau: Đối tượng Request: Đối tượng này cung cấp các thông tin và tham số người dùng chuyển lên trình chủ thông qua thao tác submit dữ liệu trong thẻ Form của trang hoặc truyền bằng chuỗi QueryString trên địa chỉ URL. Đối tượng Response: Đối tượng này thực hiện phản hồi, chuyển kết xuất từ trình chủ về trình khác. Đối tượng Application: Đối tượng Application dùng lưu giữ các thông tin toàn cục của ứng dụng Web. Có thể chuyển thông tin trao đổi giữa các trang ASP và các Session thông qua biến lưu trữ của Application. Đối tượng Session: Đối tượng session dùng lưu giữ các thông tin chỉ có tác dụng đối với kết nối của một người dùng trong khoảng thời gian nào đó. Đối tượng Server: Đối tượng Server được dùng thực hiện các thao tác đặc biệt tác động lên trình chủ Server cung cấp các phương thức và thuộc tính tiện ích sau: CreateObject(objectname): Tạo một đối tượng thuộc dạng COM của Windows thực thi phía trình chủ. MapPath(path): Chuyển đường dẫn URL ảo thành đường dẫn vật lý của ổ đĩa trên máy chủ. Execute(path): Thực thi trang asp trong đường dẫn. HTMLEncode (string): Mã hóa chuỗi string thành dạng hiểu và thông dịch được bởi ngôn ngữ HTML (thường dùng khi dữ liệu chứa các ký tự điều khiển đặc biệt) URLEncode (string): Mã hóa chuỗi string theo qui tắc chuyển đổi của URL hiểu được bởi các trình duyệt phía máy khách. Phương thức mà đối tượng Server thường sử dụng nhất là CreateObject. Phương thức này có thể giúp tạo ra các đối tượng khác dựa vào tên định danh. Ví dụ, có thể dùng phương thức Server.CreateObject tạo ra đối tượng FileSystemObject. Đối tượng Dictionary: Đối tượng Dictionary được dùng để lưu trữ một mục thông tin dựa trên khóa. Đối tượng này tương tự cách truy xuất băm (Hash table). Có thể hình dung bảng băm hoặc Dictionary tương tự cách tra cứu của từ điển. Trong đó khóa được xem là từ cần tra và mục dữ liệu chính là nội dung của từ được tra trong từ điển. Đối tượng Dictionary cung cấp các phương thức và thuộc tính để xử lý sau: Add: Thêm một mục dữ liệu và khóa vào bảng Dictionary. Exists: Trả về true nếu một khóa tồn tại. Items: Trả về một mảng các mục dữ liệu chứa trong Dictionary. Keys: Trả về một mảng các khóa chứa trong Dictionary. Remove: Loại một khóa và mục dữ liệu khỏi Dictionary. RemoveAll: Xóa bỏ tất cả các khóa trong Dictionary. Count: Trả về tổng số mục dữ liệu hoặc khóa có trong Dictionary. Item: Thiết lập hoặc nhận trị trả về của một mục dữ liệu dựa vào khóa. Key: Thiết lập hoặc thay đổi khóa cho mục dữ liệu. Đối tượng ASPError: Trong quá trình xử lý, trang ASP cung cấp đối tượng ASPError chứa các thông tin lỗi phát sinh mới nhất. Có thể dựa vào ASPError để đưa ra các thông báo lỗi thân thiện với người dùng hơn các lỗi trang do trình chủ IIS trả về. 5. CÁC ĐỐI TƯỢNG TIỆN ÍCH (INSTALLABLE – COMPONENT) Ngoài các đối tượng nội tại, trình chủ IIS cung cấp các đối tượng tiện ích như AdRotator, BrowserCap, Counters… Có thể chọn thêm vào hoặc bỏ đi các đối tượng này trong quá trình cài đặt IIS. Đối tượng AdRotator: Đối tượng này cho phép hiển thị các ảnh quảng cáo trên Web site một cách ngẫu nhiên. Quảng cáo là một trong những cách tạo ra lợi nhuận cho những Web site nổi tiếng. Giả sử có rất nhiều khách hàng muốn quảng cáo trên một Web site, không gian để đặt quảng cáo trên trang Web thì có giới hạn. AdRotator giúp chọn ngẫu nhiên ảnh quảng cáo mỗi khi khách hàng ghé thăm trang Web. Đối tượng BrowserCap: Khi người dùng gõ một điạ chỉ URL gọi trang .asp, phía trình chủ có thể kiểm tra loại trình duyệt mà trình khách đang sử dụng. Công việc này được thực hiện dễ dàng thông qua đối tượng tiện ích BrowserCap. Đối tượng này sẽ cho biết các thông tin như: hệ điều hành mà trình duyệt phía máy khách đang chạy, tên trình duyệt (ví dụ Netcape hay IE), phiên bản của trình duyệt, các đặc tính hỗ trợ JavaScript, phiên bản HTML mà trình duyệt có khả năng diễn dịch…Tất cả những yếu tố này rất hữu ích để các trang ASP sinh mã tương thích với trình duyệt khi phản hồi kết quả. Đối tượng Counters: Đối tượng Counter cho phép đếm số lần người dùng triệu gọi trang Web của ứng dụng. Thường đối tượng Counter chỉ cần tạo ra một lần duy nhất trong file global.asa và hoạt động trong suốt chu kỳ sống của ứng dụng. Tạo đối tượng Counter bằng thẻ trong file global.asa như sau: <OBJECT ID=”objCounter” RUNAT=”Server” SCOPE=”Application” PROGID=”MSWC.Counters”> Ở đây objCounter là tên đối tượng Counter có phạm vi toàn cục (SCOPE=”Application”). Tất cả các trang .asp trong ứng dụng có thể gọi phương thức Increment để tăng giá trị của Counter. Cũng có thể thiết lập giá trị mới cho Counter bằng phương thức Set hoặc lấy về giá trị hiện hành bằng phương thức Get. Muốn loại bỏ Counter, gọi phương thức Remove. Đối tượng FileSystemObject: Đối tượng FileSystemObject cho phép xử lý các thao tác trên hệ thống file phía máy chủ. Có thể thực hiện những tác vụ như xem danh sách hay liệt kê nội dung của thư mục, sao chép, xoá hoặc đổi tên file công thư mục, tạo file hay thư mục mới… Ví dụ, thay vì dùng đối tượng Counter, mỗi khi người dùng mở trang Web, đối tượng FileSystemObject sẽ được gọi để mở file, đọc số đếm của Counter, tăng giá trị biến Counter lên 1 và lưu trở lại file. FileSystemObject cung cấp các phương thức xử lý sau: BuildPath: Thêm một tên file hay thư mục vào đường dẫn thư mục hiện hành. CopyFile: Copy file. CopyFolder: Copy thư mục. GetAbsolutePathName: Trả lại đường dẫn tuyệt đối của file hoặc thư mục. GetBaseName: Trả lại đường dẫn cơ sở của file hoặc thư mục. GetParentFolderName: Trả về tên của thư mục cha. OpenTextFile: Mở file hoặc tạo file mới. Drivers: Trả về danh sách các ổ đĩa. … Các ứng dụng ASP thường sử dụng đối tượng FileSystemObject cho các mục đích như quản lý file, thực hiện các thao tác đọc ghi trên file, cho phép người dùng tải (upload) các file từ trình khách lên máy chủ… V. ADO (ACTIVEX DATA OBJECT) 1.TẠI SAO SỬ DỤNG ADO VÀ ADO LÀ GÌ? Trải qua một quá trình phát triển khá dài, công nghệ tin học đã chứng tỏ cơ sở dữ liệu là cực kỳ quan trọng và cần thiết đối với hầu hết các ứng dụng máy tính. Khởi thuỷ, các chương trình đơn giản sử dụng file văn bản (text file) làm nơi lưu trữ dữ liệu. Những ứng dụng hiện đại như Foxpro, Access sử dụng hẳn tập tin với cấu trúc đặc biệt làm nơi chứa dữ liệu. Những file này được gọi là cơ sở dữ liệu. Phát triển hơn nữa, các hệ cơ sở dữ liệu quan hệ chuyên nghiệp hơn ra đời phục vụ cho nhu cầu lưu trữ dữ liệu lớn và truy xuất nhanh như SQL Server, Oracle, DB2…Khó khăn lớn nhất khi lập trình truy xuất cơ sở dữ liệu là cơ chế kết nối, đọc và xử lý dữ liệu từ các file của những hệ cơ sở dữ liệu. Chúng có cấu trúc khác nhau và có cách xử lý riêng biệt. Điểm chung nhất mà các hệ cơ sở dữ liệu có thể tương đồng là khả năng sử dụng ngôn ngữ truy vấn chuẩn SQL. Tuy nhiên, để kết nối và sử dụng được câu lệnh SQL tác động vào cơ sở dữ liệu, lập trình viên cần sử dụng các trình điều khiển do mỗi hệ cơ sở dữ liệu cung cấp. Học cách sử dụng các hàm của trình điều khiển là công việc không mấy dễ dàng đối với nhà phát triển ứng dụng. Microsoft đã giải quyết vân đề này bằng cách xây dựng một tập các hàm giao tiếp tổng quát (API-Application Programming Interface) dành cho kết nối và truy xuất dữ liệu. Các hệ dữ liệu muốn những chương trình Windows có khả năng truy xuất dữ liệu của mình một cách thống nhất cần viết trình điều khiển cài đặt theo giao tiếp của những hàm API này. Đây chính là mô hình hoạt động của cơ chế cầu nối ODBC (Open Database Conectivity). ODBC cho phép ứng dụng dùng một cách truy xuất duy nhất kết nối đến mọi hệ cơ sở dữ liệu. Nó được xem là cầu nối giứa ứng dụng và dữ liệu. Sử dụng ODBC, lập trình viên không cần quan tâm đến sự khác biệt của các hệ cơ sở dữ liệu. Trình điều khiển ODBC do nhà phát triển hệ dữ liệu cung cấp sẽ chịu trách nhiệm giao tiếp với lập trình viên thông qua ngôn ngữ SQL do các ham API của Windows quản lý. Tuy nhiên, ODBC tỏ ra chậm và không hiệu quả. Microsoft tiến xa hơn nữa, xây dựng cầu nối và tập các hàm truy xuất dữ liệu tổng quan ở dạng đối tượng gọi là OLE DB. Đây là các đối tượng xây dựng theo mô hình COM (Component Object Model) hoạt động gắn liền với hệ điều hành, cho phép truy xuất trực tiếp đến mọi nguồn dữ liệu theo một giao tiếp tổng quát nhất. Tuy nhiên, sử dụng OLE DB khá phức tạp, thường chỉ thuận tiện cho lập trình viên C và C++. ADO (ActiveX Data Object) là lớp đối tượng đơn giản hoá hơn cho giao tiếp OLE DB cấp thấp. Thật sự ADO đơn thuần chỉ là đối tượng COM tập trung vào xử lý dữ liệu thông qua OLE DB của Windows. 1.1 Kiến trúc ADO Để hiểu rõ cách sử dụng ADO, cần tìm hiểu kiến trúc của ADO. Hình: Kiến trúc ADO và OLE DB Lưu ý là ta dùng khái niệm Data Store để 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 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ý. Có thể dùng ADO để truy xuất dữ liệu mail, dữ liệu file hay bất kỳ dữ liệu nào hỗ trợ cơ chế cho phép giao tiếp thông qua OLE DB. 1.2 Trình tiêu thụ (consumer) và trình cung cấp (provide) Mô hình kiến trúc ADO cho thấy cách ADO làm việc nằm giữa tầng ứng dụng và tầng dữ liệu chứa các loại dữ liệu như dữ liệu email, dữ liệu file, cơ sở dữ liệu… Trong lập trình, chương trình mà chúng ta viết chính là trình tiêu thụ dữ liệu (data consumer) bởi nó cần truy xuất vào các nguồn dữ liệu để xử lý. Thế còn trình cung cấp dữ liệu là gì? Đây chính là tập lệnh cho phép truy xuất vào nguồn dữ liệu (data store) theo cách đặc trưng của chúng. Provider cho phép giao tiếp giữa nguồn dữ liệu và tầng điều khiển OLE DB. Các nhà thiết kế nguồn dữ liệu cung cấp lớp giao tiếp giữa Provider và OLE DB. ADO chỉ trao đổi với nguồn dữ liệu thông qua OLE DB và không cần quan tâm đến cách thức làm việc của Provider. Chính điểm này làm cho ADO mang tính tổng quát và không phụ thuộc vào nguồn dữ liệu. Để giúp OLE DB biết được Provider nào cần phải giao tiếp, khi mở kết nối ADO cần chỉ định trình cung cấp dữ liệu Provider tương ứng. Microsoft cung cấp sẵn một số Provider cho phép truy xuất dễ dàng vào các nguồn dữ liệu đang thông dụng như sau: Jet OLE DB 4.0: Cơ sở dữ liệu MS Access. DST Packages: Dịch vụ chuyển đổi dữ liệu trong SQL server. ODBC Driver: Provider cho phép truy xuất nguồn dữ liệu qua ODBC. SQL Server : Cơ sở dữ liệu SQL Server. Oracle: Cơ sỏ dữ liệu Oracle. Simple Provider: Truy xuất dữ liệu dạng text. Index Service: Sử dụng cho truy xuất dịch vụ thư mục của Windows. Microsoft Dicrectory Service: Sử dụng cho truy xuất dịch vụ thư mục của Windows 2000. 1.3 Trình cung cấp (provider) và trình điều khiển (driver) Một lưu ý khác đó là cần phân biệt trình cung cấp và trình điều khiển-driver. Thật ra về ý nghĩa Provider và Driver đều có mục đích như nhau, đó là cho phép các chương trình ngoài cùng như hệ điều hành giao tiếp với nguồn dữ liệu thông qua hàm xử lý trực tiếp (native). Tuy nhiên Provider hướng đến tính tổng quát của OLE DB trong khi trình điều khiển cơ sở dữ liệu Driver lại nhắm vào giao tiếp chung cho thành phần kết nối theo kiến trúc ODBC. Điều quan trọng đó là Provider mang tính tổng quát hơn Driver. Chúng ta có thể dùng ODBC Provider để truy xuất dữ liệu thông qua các trình điều khiển Driver cho cơ chế ODBC. Do ODBC đã khá phổ biến và nhiều trình điều khiển hỗ trợ nó nên cho đến khi nhà cung cấp đưa ra một Provider mới tương thích với cơ sở dữ liệu của họ, chúng ta chỉ có cách sử dụng ADO kết nối vào nguồn dữ liêu thông qua ODBC Provider. ODBC Provider sẽ chuyển lời gọi và truy xuất đến tầng ODBC yêu cầu các trình điều khiển Driver bên dưới tiếp cận với cơ sở dữ liệu mà nó quản lý. Hình: Provider và Driver Rõ ràng sử dụng ODBC Provider sẽ chậm hơn trình cung cấp OLE DB Provider cho phép truy xuất trực tiếp (do phải qua lớp trung gian của trình điều khiển ODBC). Tuy nhiên ODBC Provider giúp ADO tiếp cận với mọi nguồn dữ liệu thông dụng nhất trên Windows dựa vào trình điều khiển ODBC sẵn có trong khi chờ nhà cung cấp đưa ra một phiên bản tiếp cận với dữ liệu bằng OLE DB Provider khác. 2. MÔ HÌNH ĐỐI TƯỢNG ADO 2.5 2.1 Đối tượng Connection Đố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, người lập trình chỉ định trình cung cấp OLE DB Provider sẽ dùng để tiếp cận dữ liệu. Các thông tin kết nối bổ sung khác như: tên đăng nhập cơ sở dữ liệu (username), mật khẩu (password), tên máy chủ (server) …Tất cả những thông tin này thường được lưu vào một chuỗi gọi là chuỗi kết nối (Connection String). Lưu ý là để có thể kết nối và truy xuất nguồn dữ liệu, không bắt buộc phải tạo đối tượng Connection. Các đối tượng 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 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ện SQL tác động dữ liệu (INSERT, UPDATE, DELETE, gọi thủ tục nội Store Procedure…) hoặc kiểm soát giao dịch (transaction) như Rollback, Commit… 2.2 Đối tượng Command (lệnh thực thi) Mặc dù người lập trình 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 Connection 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 tốt hơn. 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 cho phép chuyển tham số vào các lệnh thực thi SQL. Tham số có thể chỉ định kiểu hoặc giá trị tường minh. Các tham số cso thể nhận giá trị trả về sau khi thực thi… Command có thể dùng cho cả 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, UPDATE, các Store Procedure) hoặc thực thi các lệnh trả về tập Recordset như lệnh SELECT. 2.3 Đối tượng Recordset (tập 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 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ừ tập các mẩu tin, truy xuất đến từng trường 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 Field. 2.4 Đối tượng Record Đối tượng Record cho phép truy cập chi tiết đến thông tin của từng mẩu tin. Có thể hỏi đối tượng Recordset đã cung cấp cách thức truy cập đến từng trường của mẩu tin thì tại sao lại dùng thêm đối tượng Record? Thật sự nếu chỉ dùng loại dữ liệu dạng bảng của cơ sở dữ liệu thì có thể không cần dùng đến đối tượng Record. Tuy nhiên đối tượng Record giúp truy xuất tổng quát đến mọi nguồn dữ liệu không riêng gì dữ liệu dạng bảng. Hãy hình dung nếu muốn truy xuất nội dung của nguồn dữ liệu là một thư mục. Thư mục có thể xem là một bảng dữ liệu với danh sách file là các mẩu tin (record). Tuy nhiên mỗi mẩu tin của file trong thư mục không đơn thuần chỉ chứa các trường như tên file, ngày giờ tạo file, kích thước file…Thông tin về mỗi mẩu tin biểu diễn cho file có thể khác nhau về quyền truy xuất trên file, nội dung file. Đối tượng Record sẽ giúp thể hiện sự khác biệt này của từng mẩu tin thông qua phương thức và thuộc tính. Nếu chỉ sử dụng và truy xuất mẩu tin thông qua Recordset theo cách thông thường thì sẽ không xử lý được. 2.5 Đối tượng Stream (luồng) Đối tượng Stream cho phép biểu diễn nội dung của một nut (node) dữ liệu. Cụ thể, thông qua Stream, có thể xem và truy xuất được các loại dữ liệu nhị phân không thuộc dạng bảng như nội dung file, e-mail, trang Web, dữ liêu XML… Đối tượng Stream thường được kết hợp xử lý thông qua đối tượng Record và Recordset. 2.6 Đối tượng Collection (tập hợp) Thư viện ADO cung cấp rất nhiều loại tập hợp. Mỗi loại có thể nắm giữ một hoặc nhiều đối tượng khác thậm chí có thể là một tập hợp rỗng không chứa phần tử nào cả. 3. KẾT NỐI VỚI NGUỒN DỮ LIỆU Để tiếp cận và bắt đầu xử lý dữ liệu bằng các đối tượng ADO, chúng ta hãy xem cách thức kết nối vào những nguồn dữ liệu khác nhau thông qua chuỗi kết nối. 3.1 Chuỗi kết nố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. Sau đây là một số kết nối đến các loại cơ sở dữ liệu thông dụng: Cơ sở dữ liệu MS Access: connStr=”Provider = Microsoft.Jet.OLEDB.4.0; Data Source = …” 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=”Driver= Microsoft Access Driver(*.mdb); DBQ=…”

Các file đính kèm theo tài liệu này:

  • docxWeb quản lý nhân sự.docx