Đề tài Xây dựng một phần mềm quản lý thiết bị

I. Mô tả đề tài Hi- Tech là một trung tâm công nghệ cao của trường Đại Học Bách Khoa - Hà Nội. Hiện nay trung tâm này được nhà nước và trường Đại Học Bách khoa Hà Nội đầu tư một số thiết bị tin học khá hiện đại. Với đặc thù của các thiết bị tin học, công việc sửa chữa và bảo hành là công việc hết sức cần thiết. Xuất phát từđiều kiện thực tiễn này, trung tâm có nhu cầu xây dựng một phần mềm quản lý thiết bị trợ giúp cho người quản trị hệ thống có phương tiện theo dõi quá trình sử dụng thiết bị một cách hiệu quả. Internet trong thời đại hiện nay phát triển rất mạnh và tiện lợi cho người dùng, mọi người có thể truy cập Internet ở bất cứđâu vàở bất cứ khi nào mà chỉ yêu cầu có một cổng Internet. Nhưng vào giữa thập niên 90, khi bắt đầu bùng nổ sự truy cập Web thìđa số những người sử dụng máy tính đều có thể truy cập thông tin trên Internet. Tuy nhiên các nhà thiết kế Web gặp phải khó khăn trong việc đưa thông tin lên Web và cập nhật chúng. Để giải quyết vấn đềđó ASP (Active Server Page) đã cho phép người sử dụng tương tác dễ dàng với máy chủ và cơ sở dữ liệu. Trong những công nghệđó cóADO (ActiveX Data Object), được thiết kếđể cung cấp một phương pháp truy cập dữ liệu chung cho tất cả mọi người, nó có thể dùng cho bất kỳ ngôn ngữ nào tương thích với COM (Component Object Model). Những gì cần khi tạo một trang Web động, sử dụng ASP sẽ làm cho nó có thể kết nối đến tập tin văn bản hay cơ sở dữ liệu của bạn để lấy và hiển thị thông tin. Bất cứ khi nào bạn chỉnh sửa dữ liệu, sự thay đổi đó sẽ thay đổi ngay trên trang Web mà không phải thay đổi bất cứ dòng HTML nào. Công việc này có dễ dàng không? Thật may may mắn ASP có thể làm tốt nhất và nó cung cấp khả năng truy xuất đến một tập hợp các thành phần chỉđể thực hiện tác vụ này. Các thành phần đó chính là ADO- kết hợp sức mạnh của cơ sở dữ liệu với tính phổ biến của Web để tạo nên nhưng ứng dụng Web. Chính vì tính phổ biến của Web nên em phát triển phần mềm này dựa trên giao diện Web và sử dụng ASP kết hợp ADO. II. Khảo sát sơ bộ: 1. Mục tiêu xây dựng: - Hỗ trợ ba lớp người sử dụng. - Những người quản trị thao tác trên cơ sở dữ liệu như: Đọc, ghi, chỉnh, sửa, thống kê. 2. Các yêu cầu đặt ra cho hệ thống. - Đối với người quản trị thiết bị có các quyền sau: ã Bổ sung, sửa và xoá danh mục các thiết bị cần quản lý. ã Cập nhật tình trạng thiết bị. ã Lập phiếu yêu cầu bảo hành, bảo trì thiết bị. ã Thống kê thiết bị theo nhóm, tình trạng. ã Tổng hợp lịch sử thiết bị. - Đối với cán bộ quản lý: ã Thống kê thiết bị theo nhóm, tình trạng. ã Tổng hợp lịch sử thiết bị. - Đối với cán bộ quản trị hệ thống: ã Bổ sung người sử dụng. ã Liệt kê người sử dụng. ã Loại bỏ người sử dụng. ã Cập nhật thông tin người sử dụng. 3. Mô tả các danh mục các thiết bị. Các thiết bịđược chia thành các nhóm, có thể bổ sung hoặc sửa đổi với các nhóm. Mỗi thiết bị có thể có những nhóm thuộc tính sau: - Mã số thiết bị. - Tên thiết bị. - Chủng loại. - Tính năng kỹ thuật. - Xuất xứ. - Serial các bộ phận cấu thành. - Trạng thái hiện tại. - Ghi chú. Mỗi thiết bị cần quản lý có lịch sử hoạt động ( bao gồm các giai đoạn sửa chữa nếu có hỏng hóc). III. Cấu trúc đồán Cấu trúc đồán gồm có ba chương Chương 1: Giới thiệu đề tài I. Mô tảđề tài II. Khảo sát sơ bộ Chương 2: ASP (Active Server Page) vàADO (ActiveX Data Object) I. Giới thiệu ASP II. Ngôn ngữ sử dụng lập trình với ASP III. VBscript IV. Những vấn đề liên quan đến xây dựng ứng dụng ASP V. Các đối tượng trong ASP VI. ADO ( ActiveX Data Object) Chương 3: Xây dựng ứng dụng I. Thiết kế cơ sở dữ liệu II. Mô hình sử dụng Web III. Thiết kế trang Chương 4: Kết luận

docx66 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2543 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng một phần mềm quản lý thiết bị, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
mình tạo ra các thành phần (Component) của riêng mình và thêm vào để sử dụng trong ASP. ASP tạo ra các trang HTML tương thích với Web Browser chuẩn. II. Ngôn ngữ lập trình sử dụng với ASP: 1. Các lênh Script (Script Command) của ASP : Một script là một chuỗi các lệnh gán biến, các lệnh yêu cầu Web Server gửi thông tin đến một trình duyệt (Browser) (Như giá trị biến). Các lệnh này kết hợp lại thành thủ tục (Procedure) hay hàm (Function) để thực hiện một công việc cụ thể. Mỗi Script của ASP được chứa trong một file .ASP. Mỗi file của .ASP có thể coi như một file HTML có thể chèn vào các lệnh của ngôn ngữ Script nào đó. Thực ra nó là một file văn bản (File Text) nhưng các văn bản (Text) đó có những vùng mà khi Web Server đọc tới thì nó hiểu đó là những vùng Script chưa những lệnh của một ngôn ngữ Script nào đó, Web Server sẽ gọi tới các Script Engine để thực thi các lệnh Script trong khi đó. ASP quy định một vùng Script nằm giữa hai dấu hoặc trong vùng của hai Tags và Script là đoạn chương trình thể hiện các yêu cầu của người lập trình đối với ASP, nó chứa các câu lệnh mà người lệnh trình muốn ASP thực hiện và nội dung người đó muốn tạo ra trên các trang HTML kết quả trả về cho Web Browser gọi đến ứng dụng. Tóm lại: Script giống như một chương trình được người lập trình viết ra để thực thi trên môi trường hoạt động của ASP, cũng giống như mọi ngôn ngữ lập trình khác như C, Pascal.., chỉ có điều khác là chương trình của ngôn ngữ khác phải biên dịch ra dạng thực thi được và dùng dạng thực thi được để chạy trên một môi trường cụ thể (DOS, Windows,..); Còn Script thì không phải biên dịch trước ra dạng thực thi đựơc mà đem dạng văn bản (Text) chạy thăng trong môi trường của ASP. Ví dụ minh hoạ: <% Myname = “pham van bieu” If Time >= # 12:00:00 am # AND time < # 12:00:00pm # Then %> chao buoi sang “ & myname” xin chao 2.Ngôn ngữ Script (Script luanguage) và Script Engine: Script của ASP được cấu thành từ các lệnh của ngôn ngữ Script (Script Language) nào đó, xen lẫn vào đó là nội dung dạng HTML, để trả về kết quả cuối cùng ở dạng HTML. Ngôn ngữ Script (Script Language) nằm ở khoảng ngôn ngữ siêu văn bản (HTML) và các ngôn ngữ lập trình như Java, C++, Visual Basic.. Ta biết HTML dùng dể định dạng và liên kết các văn bản, còn các ngôn ngữ lập trình có khả năng tạo ra chuỗi các lệnh phức tạp cho máy tính thực hiện. Đối với scripting language, nó nằm ở giữa, tuy nhiên nó gần với ngôn ngữ lập trình hơn là HTML. Khác nhau cơ bản giữa ngôn ngữ Script (Scripting Language) và các ngôn ngữ lập trình là ở chỗ các luật và cú pháp của ngôn ngữ Script (Scripting Language) linh hoạt và hiểu hơn các ngôn ngữ lập trình. Scripting Engine là các đối tượng có nhiệm vụ xử lý các Script. ASP cung cấp một môi trường chủ cho các Script Engine và phân phối các Script trong các file .ASP cho các máy (Engine) này để xử lý. Để sử dụng được một ngôn ngữ Script (Scripting Language) cùng với ASP ta phải cài đặt Script Engine tương ứng vào Web Server. Ví dụ như Visual Basic Script (VBscript) là Script Language mặc định của ASP, do đó ta phải có VBscript. tương tự ASP có thể cung cấp môi trường Script cho các ngôn ngữ script (Scripting Language) như Jscript, Rexx, Perl,.. ASP cho phép người lập trình dùng nhiều ngôn ngữ script (Scripting Language) cùng lúc để tạo các thủ tục phức tạp mà không phải bận tâm các Browser có trợ giúp các ngôn ngữ script (Scripting Language) hay không. Vì tất cả các Script đều được thực thi ở máy chủ (Server). Không những thế ta còn có thể dùng nhiều ngôn ngữ script (Scripting Language) trong cùng một file .ASP chỉ cần bằng cách một thẻ HTML (HTML Tag) để khai báo ngôn ngữ Script nào được dùng. ASP mặc định sử dụng ngôn ngữ script (Scripting Language) chính ( Primary Scripting Language) là VBscript. Tuy nhiên ta vẫn có thể định lại ngôn ngữ script (Scripting Language) chính trong cả hai phạm vi là toàn bộ môi trường ASP, hay chỉ trong một file .ASP nào đó. Để thay đổi ngôn ngữ script (Scripting language) chính trong toàn bộ môi trường ASP ta phải thay đổi tên ngôn ngữ script (Scripting Language) trong giá trị của một Registry Entry của hệ thống có tên là Default Script Language. Ví dụ như trị mặc định là VBscript, ta có thể thay đổi lại hay Jscript,.. Để thay đổi ngôn ngữ script (Script Language) chính chỉ trong một file .ASP nào đó, ta chỉ cần đặt ở đầu File một thẻ ( Tag) đặc biệt có dạng: với ngôn ngữ script (Scripting Language) là tên ngôn ngữ script (Scripting Language) muốn đặt làm ngôn ngữ script (Scripting Language) chính như VBscript, Jscript,.. 3. Viết các thủ tục ( Procedure) với ngôn ngữ: Như ta đã nói, một trong các đặc tính mạnh của ASP là khả năng kết hợp nhiều ngôn ngữ script (Scripting Language) trong một file .ASP. Nếu biết tận dụng khả năng này ta có được một công cụ rất mạnh để thực hiện những công việc phức tạp. Một thủ tục (Procedure) là một nhóm các dòng lệnh Script thực hiện một tác vụ nhất định. Ta có thể tạo ra các thủ tục (Procedure) để dùng nhiều lần trong các Script. Có thể định nghĩa các thủ tục (Procedure) bên trong các dấu phân cách (Delimeter) nếu như có được viết bằng ngôn ngữ script (Scripting Language) chính. Nếu không thì có dùng trong các thẻ (Tag). Ta có định nghĩa các thủ tục (Procedure) trong các file .ASP có gọi đến nó trong các file riêng chỉ chứa các thủ tục ( Procedure) rồi Include File đó vào khi cần gọi thủ tục (Procedure) đó. Thường các file Include trong ASP qui ước có đuôi .INC. III. Visualbasic Script Language (VBscript) 1. Giới thiệu về VBscript: VBscript là một thành phần mới nhất trong họ ngôn ngữ lập trình Visual Basic, cho phép tạo ra những Script sử dụng được trên nhiều môi trường khác nhau các Script chạy trên trình duyệt (Browser) của máy khách (client) (MS Internet Exploer) nay trên Web Server (MS Internet Information Server). Cách viết VBscript tương tự như cách viết các ứng dụng trên Visual Basic hay Visual Basic Application. VBscript giao tiếp với ứng dụng chủ (Host Application) bằng cách sử dụng các ActiveX Scripting. 2. Các kiểu dữ liệu của VBscript: VBscript chỉ có một loại sữ liệu được gọi là Variant là một kiểu dữ liệu đặc biệt có thể chứa đựng những loại thông tin khác nhau tuỳ theo cách sử dụng. Tuy nhiên nó cũng là kiểu dữ liệu trả về bởi tất cả các hàm, ở đây đơn giản nhất là Variant có thể chứa thông tin số hoặc chuỗi tuỳ theo văn cách sử dụng. Các loại dữ liệu (Subtype) mà Variant có thể biểu diễn là: Empty, Null, Boolean, Byte, Currency, Date, Time, String, Object, Error… VBscript có sẵn một hàm số để chuyển từ Subtype này sang Subtype khác 3.Biến trong VBscript Một biến là một tên tham khảo đến một vùng nhớ, là nơi chứa thông tin của chương trình mà thông tin này có thể thay đổi trong thời gian Script chạy. ví dụ có thể đặt một biến tên là Clickcount để đếm số lần người sử dụng chọn (User click) vào một đối tượng (Object) trên một trang Web nào đó. Vị trí của biến không quan trọng, ta chỉ truy xuất nó thông qua tên mà thôi. Trong VBscript biến luôn có kiểu là Variant Khai báo biến: Dùng phát biểu Dim, Public (cho biến toàn cục) hay Private ( cho biến cục bộ) Ví dụ: Dim lickcount Tên biến phải bắt đầu bằng kí tự chữ, trong tên tiến không chứa dấu chấm, chiều dài tối đa là 255 kí tự và một biến là duy nhất trong tầm hoạt động mà nó được định nghĩa. Tầm hoạt động và thời gian sống của một biến: Có hai loại biến là Procedure Level và Script Level tương ứng với hai tầm hoạt động là cục bộ (Local) và Script Level. Thời gian sống của một biến được tính từ khi nó được khai báo đến khi Script kết thúc, đối với biến cục bộ (Local) là từ khi nó đựơc khai báo đến khi thủ tục (Procedure) chứa nó kết thúc. Biến trong VBscript có thể là biến đơn hay biến dãy. Khi khai báo Dim(10) thì Script tạo ra một dãy có 11 phần tử ( vì phần đầu có chỉ số là 0). Một biến dãy có thẻ mở rộng tới 60 chiều, nhưng thường dùng 2 đến 4 chiều. Có thay đổi kích thước môt dãy trong thời gian chạy bằng cách dùng phát biểu Redim Ví dụ Dim myarray(25) … Redim myarray(30) hay Redim Preserve Mayarray (30) ‘giữ lại các giá trị trong dãy cũ. 4. Hằng trong VBscript. Hằng là một tên có nghĩa đại diện cho một số hay một chuỗi và không thể thay đổi trong quá trình chạy tạo một hằng bằng phát biểu Const. Ví dụ Const mysting= “this my string” 5. Các toán tử trong VBscript: VBscript có các toán tử khác nhau như số học, luận lý so sánh. Nếu muốn chỉ định thứ tự ưu tiên của toán tử một cách rõ ràng thì dùng dấu ngoặc ( ), còn không thì thứ tự ưu tiên như sau (từ trên xuống dưới từ rái qua phải): Số học: ^, - (âm), * , / , mod, + , - , &, \ (chia lấy số nguyên). So sánh: =, , , = , IS. Lý luận: NOT, AND, OR, XOR, EQV, IMP. Toán tử * và /, + và - có cùng độ ưu tiên và được thực hiện từ trái qua phải. 6. Các cấu trúc điều khiển: If… Then … Else… Endif Do… Loop While… Wend For … Next 7. Thủ tục (Procedure) trong VBscript: Có hai thủ tục (Procuduce) là Sub và Function Sub Procedure: Là một chuỗi các phát biểu VBscript nằm trong phát biểu Sub và EndSub, thực hiện một số công việc và không trả về giá trị. Function Procedure tương tự như Sub nhưng trả về giá trị Ngoài những kiểu dữ liệu, toán tử và cấu trúc điều khiển như đã giới thiệu ở bên ngôn ngữ Script còn rất nhiều hàm tạo nên sự sinh động cho chương trình. IV. Những vấn đề liên quan đến việc xây dựng ứng dụng ASP: Khi xây dựng một ứng dụng trên một môi trường ASP để chương trình sinh động ta cần lưu ý khi: Xây dựng file Global.asa Viết mã Script Thêm các đối tượng ( Object) có sẵn vào trong chương trình. Sử dụng các ActiveX Component Lấy thông tin người sử dụng (User), gửi thông tin người sử dụng ( User). 1. File Global.asa: File Global.asa là một file tuỳ chọn, trong đó bạn có thể khai báo các Script đáp ứng biến cố, các biến có tầm hoạt động là Application (ứng dụng) hay Session (phiên). Đây không phải là file nhìn thấy bởi người sử dụng (User), trái lại nó chứa những thông tin được sử dụng bởi ứng dụng một cách toàn cục. File này phải đặt tên là Global.asa và được đặt trong thư mục gốc của ứng dụng. Mỗi ứng dụng chỉ có một file Global.asa duy nhất. Một file Global.asa có thể chứa các thành phần sau: Application Event, Session Event, định nghĩa các đối tượng. Nếu bạn viết các Script không được bao bởi thẻ (Tag) , hoặc định nghĩa các đối tượng không có tầm hoạt động Application hay Session thì máy chủ (Server) sẽ trả về lỗi. Máy chủ (Server) sẽ bỏ qua những Script có chứa những thành phần HTML mà các biến cố Application và Session không thể xử lý như trong một File HTML thông thường. Những Script trong File Global.asa có thể được viết bằng bất cứ ngôn ngữ nào có hỗ trợ Script. Nếu các Script được viết bởi cùng một ngôn ngữ thì có thể hợp chúng trong cùng một thẻ (Tag) duy nhất. Khi bạn thay đổi File Global.asa và ghi lại nó thì máy chủ ( Server) hoàn tất việc xử lý những nhu cầu ứng dụng hiện thời trước khi nó biên dịch lại file Global.asa, trong khoảng thời gian này máy chủ (Server) từ chối và ra thông báo : “The request cannot be procesed while the application is being restarted”, sau khi các yêu cầu (Request ) được xử lý xong máy chủ (Server) xoá bỏ tất cả các phiên (Session) đang chạy, gọi biến cố Session_Onend tương phiên (Session) mà nó xoá, tiếp theo gọi biến cố Application_Onend. File Global.asa được biên dịch lại, yêu cầu (Request) của người sử dụng (User) tiếp theo sẽ khởi động ứng dụng trở lại (gọi biến cố Application_Onstart và Session_Onstart). Tuy nhiên khi lưu lại những file được Include trong file Global.asa thì không gây lên biến cố này, muốn khởi động lại phải ghi lại file Global.asa. các thủ tục trong file Global.asa chỉ có thể gọi trong từ các Script trong biến cố: Application_Onstart, Application_Onend, Session_Onstart, Session_Onend. Các thủ tục này không thể gọi trong các trang ASP trong ứng dụng dựa trên ASP Để Share các thủ tục giữa các file ASP khác nhau trong một ứng dụng, cần định nghĩa chúng trong một file riêng rồi dùng Include để chèn chúng vào các trang ASP có gọi thủ tục đó. Những File Include thường có phần mở rộng .INC. 2. Khai báo đối tượng và biến cố : Biến cố Application: Application_Onstart: Xảy ra trước khi phiên (Session) đầu tiên được tạo, nghĩa là trước biến cố Session_Onstart, khi có yêu cầu đầu tiên đến trang ASP của ứng dụng. Chỉ có các đối tượng ứng dụng (Application) và các đối tượng cài đặt trong máy chủ ( Server Build - In) là có thể sử dụng. Các tham khảo đến đối tượng Session, Request, Response sẽ gây ra lỗi. - Cú pháp: Sub Application_Onstart … End Sub - Tham số Script Language: Chỉ định ngôn ngữ Script dùng để viết Script. Thường sử dụng biến cố này để khởi động một số biến toàn cục, thông tin hệ thống . Application_Onend: xảy ra trước khi đóng ứng dụng, sau khi biến cố Session_Onend cuối cùng xảy ra chỉ có các đối tượng ứng dụng (Application) hay các đối tượng được cài đặt sẵn trong máy chủ (Server Build - In) là có thể sử dụng. Cú pháp Application_onend ... End sub Tham số Script language chỉ định ngôn ngữ Script dùng để viết Script. Thường sử dụng biến cố này để xoá, cập nhật lại các thông tin của hệ thống Biến cố session: Web Server tự động tạo một phiên (Session) cho một người sử dụng cho một trang Web tương ứng khi được yêu cầu. Máy chủ (Server) sẽ xoá bỏ một phiên (Session) khi nó vượt thời gian (Time- Out) hoặc phương thức (Method ) được gọi. Những biến cố của phiên (Session): Session_Onstart: Xẩy ra khi máy chủ (Server) tạo một phiên (Session) mới. Bạn phải khai báo biến có tầm hoạt động trong biến cố. Ta có thể tham khảo tất cả các đối tượng được cài đặt (Build - In) trong biến cố này Cú pháp: Sub Session_Onstart … End Sub Tham số: Script Language chỉ định ngôn ngữ Script. Ta có gọi phương thức Redirect trong biến cố Session_Onstart, chẳng hạn để bảo đảm người sử dụng muốn mở ngay sang một trang khác trang được chỉ định, thì Redirect sang trang đã chỉ định. Tuy nhiên cần chú ý là những Browser không hỗ trợ Cookies thì nó sẽ không lưu lại SessionID của nó nên bất cứ khi nào mở một trang mới thì máy chủ (server) lại tạo một trang Session mới. Ví dụ: Sub Session_Onstart Application.lock Application (“accessnumber”)= Application (“accessnumber”)+1 Application.unlock End sub Session_Onend: Xảy ra khi một phiên (Session) được đóng hoặc vượt quá thời gian (Timeout). Dùng biến cố này để xoá các biến đã đặt trong quá trình sử dụng của người sử dụng (User). Cú pháp: Sub Session_Onend … End Sub Khai báo đối tượng Bạn có tạo các đối tượng tầm hoạt động là phiên (Session) hay ứng dụng (Application) trong file Global.asa. Đối tượng này thực sự được tạo ra khi máy chủ ( Server) xử lý một Script có tham khảo đến nó. Cú pháp: <Object Runat = Server Scope = Scope ID = Identifier {progid=proid | classid= “classid”/> ... Tham số: Scope: Chỉ định tầm hoạt động của đối tượng, là “Session” hay “Application” Indentifiler: Tên Instance của đối tượng ProgID: Một định danh được kết hợp với định danh Class. ProgramID hay ClassID phải đựơc chỉ định trong khai báo . ClassID: định danh duy nhất cho một đối tượng lớp OLE. ProgramID hay classID phải đựơc chỉ định trong khai báo . Ví dụ: CLASSID = “clsid:79076FBO-B72” ID= “spntest” CODEBASE= “http”// activeX mirosoft.com.control”> V. CÁC ĐỐI TƯỢNG (OBJECT) TRONG ASP: Khi viết các Script ta thường có nhu cầu thực hiện một số tác vụ nào đó theo một quy tắc cơ bản nào đó. Khi đó thường xuất hiện những công việc lặp đi lặp lại nhiều lần, từ đó xuất hiện những nhu cầu tạo ra những đối tượng có khả năng thực hiện những công việc cơ bản đó. Mỗi đối tượng là một kết hợp giữa lập trình và dữ liệu mà có thể xử lý thống nhất. Đối với phần lớn các đối tượng, để sử dụng được nó ta phải tạo ra các Instance cho nó. Tuy nhiên ASP có sẵn năm đối tượng mà ta có thể dùng được mà không phải tạo Instance. Chúng được gọi là các đối tượng được cài đặt sẵn (Build - In Object), bao gồm: Request: Là đối tượng chứa các thông tin ở Web Browser gửi yêu cầu tới Web Server. Response: Là đối tượng chứa thông tin từ máy chủ (Server) gửi cho Web Browser. Server: Là môi trường máy chủ (Server) nơi ASP đang chạy, chứa các thông tin về tác vụ và hệ thống. Application: Đại diện cho ứng dụng Web của ASP, chứa Script hiện hành. Session: Là một biến đại diện cho người sử dụng (User) 1. Đối tượng Request: Định nghĩa: Với đối tượng Request, các ứng dụng ASP có thể lấy dễ dàng các thông tin gửi tới từ người sử dụng (User). Ví dụ khi người sử dụng gửi (User submit) từ một Form Đối tượng Request cho phép truy xuất tới bất kỳ thông tin nào do người sử dụng (User) gửi tới bằng giao thức HTTP như sau: Các thông tin chuẩn nằm trong các biến Serve Các tham số gửi tới bằng phương thức POST Các tham số gửi tới bằng phương thức GET Các Cookies Các Client Certificates Các cú pháp tổng quát: Request.(Cllectionname)( Variable) Đối tượng Request: Có 5 Collection Client Certificate: Nhận Certificate Fields từ Request của Web Browser. Nếu Web Browser sử dụng http:// để kết nối (Connect) với máy chủ ( Server), Browser sẽ gửi Certification Fields. Query string: Nhận giá trị của các biến trong HTML Query String. Đây là một giá trị được gửi lên theo sau dấu hỏi (?) trong HTML Request. Form: Nhận giá trị của các phần tử trên Form sử dụng phương thức POST Cookies: Cho phép nhận những giá trị của Cookies trong HTML Request Server Variable: Nhận giá trị của các biến trong môi trường. 2. Đối tượng Response: Định nghĩa: Việc gửi thông tin tới cho người sử dụng (User) sẽ được thực hiện nhờ đối tượng Response. Cú pháp tổng quát: Response.Clloection\ property\ method Collection của đối tượng Response: Cookies: Xác định giá trị biến Cookies. Nếu Cookies được chỉ ra không tồn tại, nó sẽ được tạo ra, nếu nó tồn tại thì nó nhận giá trị mới. Các thuộc tính (Properties): Buffer: Chỉ ra trang Web Output được giữ lại đệm Buffer hay không. Khi một trang được đệm lại, máy chủ (Server) sẽ không gửi một đáp ứng nào cho trình duyệt (browser) cho đến khi tất cả các Script trên trang hiện tại đã được thực thi xong hay phương thức FLUSH hay END được gọi. ContentType: Chỉ ra HTML Contenttype cho đáp ứng (Response). Nếu không có Contenttype được chỉ ra, chỉ mặc định là “Text / HTML”. Expires: Chỉ định số thời gian trước khi một trang được đệm (Cached) trên một tình duyệt (Browser) hết hạn. ExpiresAbsolute: Chỉ ra ngày giờ của một trang được đệm (Cached) trên trình duyệt (Browser) hết hạn. Status: Chỉ ra trạng thái của máy chủ (Server). Giá trị trạng thái được định nghĩa trong đặc tả HTTP. Các phương thức ( Methods): AddHeader (Tên, Nộidung): Tạo ra một phần đầu (Header ) HTTP tuỳ biến sử dụng các giá trị tên và nội dung và thêm nó vào đáp ứng. Không thể thay đổi một phần đầu (Header) đã tồn tại có cùng tên. Một khi đã thêm một phần đầu (Header), không thể thu hồi nó. Cần phải sử dụng trước khi gửi bất cứ trang nội dung nào (Text hay HTML) đến máy khách (Client). AppendToLog (“ String ”): Thêm một chuỗi vào cuối Log File của Web Server cho yêu cầu (Request) này. Binarywrite: Xuất thông tin Output HTML dạng nhị phân (Binary). Clear: Xoá đệm Output HTML. Tuy nhiên, phương thức này chỉ xoá đáp ứng phần thân ( Response Body) mà không xoá đáp ứng phần đầu (Response header). Phương thức này sẽ lỗi nếu như đáp ứng (Response) chưa thiết lập thành True. End dừng sử lý file .ASP và trả về kết quả hiện tại. Flush: Gửi thông tin trong Buffer cho máy khách (Client). Phương thức này sẽ sinh lỗi nếu Response.Buffer chưa thiết lập thành True. Redirect: Gửi một thông báo cho trình duyệt ( Browser) định hướng lại cho đến một URL khác. Ghi một biến ra HTML Output như là một chuỗi. 3. Đối tượng Session: Định nghĩa: Chúng ta có thể sử dụng một đối tượng phiên (Object Session) để lưu trữ thông tin cần thiết cho một người sử dụng ( User). Những biến được lưu trữ trong đối tượng (Object) vẫn tồn tại khi người sử dụng (User) nhảy từ trang này sang trang khác trong ứng dụng. Web Server tự động tạo đối tượng phiên (Object session) khi người sử dụng (User) chưa có phiên (Session) yêu cầu một trang Web. Khi phiên (Session) này kết thúc thì các biến trong nó được xoá để giải phóng tài nguyên. Các biến Session có tầm hoạt động trong phiên (Session) đó mà thôi. Cú pháp tổng quát: Session.Property | Mehtod Các thuộc tính (Property): SessionID: Trả về SessionID cho người sử dụng (User). Mỗi phiên (Session) sẽ được cho một định danh duy nhất khi nó được tạo ra. Timeout: Khoảng thời gian tồn tại của một phiên (Session), tính bằng phút, mặc định 20 phút. Các phương thức ( Method): Abandom: Xoá bỏ một đối tượng phiên (Object Session), trả về tài nguyên cho hệ thống . Session(“Login”): Cho biết người yêu cầu truy xuất đến trang có login chưa. Session (“ Username ” ): Tên của người Account tạo ra phiên (Session) hiện tại. Session (“ Selectedtopic ” ): Tên chủ đề đang được chọn để thực hiện một thao tác nào đó. 4. Đối tượng Application: Định nghĩa: Ta có thể sử dụng đối tượng ứng dụng (Object Application) để cho phép nhiều người sử dụng một ứng dụng chia sẻ thông tin với nhau. Bởi vì đối tượng ứng dụng (Object application) được dùng chung bởi nhiều người sử dụng, do đó đối tượng (Object) có hai phương thức (Method) Lock và Unlock để cấm không cho nhiều người sử dụng đồng thời thay đổi thuộc tính (Property) của đối tượng (Object) này, các biến ứng dụng ( Application) là toàn cục, có tác dụng trên toàn ứng dụng. Cú pháp tổng quát: Application.Method. Các phương thức (Method): Lock: Phương thức này cấm không cho máy khách (Client) khác thay đổi thuộc tính (Property) của đối tượng ứng dụng (Application). Unlock: Phương thức này cho phép máy khách (Client) khác nhau thay đổi phương thức (Property) của đối tượng ứng dụng (Application object ). Events: Gồm có hai Event được khai báo trong file Global.asa. ngoài ra chúng ta có thể đặt các biến trong đối tượng Application để lưu những thông tin toàn cục, hay các cờ báo hiệu. Application_Onstart: Xẩy khi khởi động ứng dụng. Application_Onend: xẩy ra khi ứng dụng đóng, sau khi máy chủ tắt ( Server Shutdown). 5. Đối tượng Server: Định nghĩa: Cho phép truy xuất đến các thuộc tính (Method) và phương thức ( Property) của máy chủ ( Server) như những hàm tiện ích. Cú pháp tổng quát: Server.method Các thuộc tính (Properties): Creatobject: Tạo Instance của Server Component. HTML Encode: mã hoá chuỗi theo dạng HTML Mappath: ánh xạ đường dẫn ảo (là đường dẫn tuyệt đối trên máy chủ (Server) hiện hành hoặc đường dẫn tương đối đến trang hiện tại) thành đường dẫn vật lý (Physical Path) URLEncode: mã hoá một chuỗi (kể cả ký Escape) theo quy tắc mã hoá URL. VI. ADO ( Ativex data object) A. Thành phần truy cập cơ sở dữ liệu (Database access component) Một ứng dụng Web cơ sở dữ liệu (Web Database) viết bằng ASP có thể truy xuất dữ liệu trong một cơ sở dữ liệu (Database), bằng cách sử dụng Component Database Access của ActiveX mạnh nhất của ASP trong việc phát triển ứng dụng Web Database Các đối tượng (Object) của ADO cung cấp có thể tạo ra các kết nối (Connection) với hầu hết các kiểu cơ sở dữ liệu (Database), cũng như việc truy xuất, cập nhật các cơ sở dữ liệu (Database) này. Hiện nay thư viện ADO là công cụ mạnh nhất trong việc phát triển các ứng dụng cơ sở dữ liệu (Database) trên Internet Trong phần này ta sẽ xem xét các thành phần trong thư viện công cụ này. B. Giao diện của ADO (ADO Interface): ADO được thiết kế một cách đơn giản nhất, nó giao tiếp với các cơ sở dữ liệu (Database) thông qua phương thức ODBC (Open Database Connectivity), chúng ta có thể sử dụng chúng với bất kỳ loại cơ sở dữ liệu(Database) nào nếu như ODBC có Driver hỗ trợ. Sự giao tiếp giữa ADO và các thành phần khác trong hệ thống có thể mô tả theo hình vẽ sau Active Server Pages ODBC Driver Active Database Component Active Data Object Data Provider Interface DATA Quá trình truy xuất dữ liệu qua ODBC Các đối tượng ( Object) trong ADO: Các đôi tượng (Object) chính trong đó là: Connection, Recordset, Command, ngoài ba đối tượng (Object) chính còn có các đối tượng (Object), tham số, thuộc tính, phương thức sử dụng con. Sử dụng Connection ta có thể thiết lập sự liên kết với cơ sở dữ liệu, thông qua đó ta có thể thực hiện các Query để lấy ra các Record hoặc tập hợp các Record bằng cách sử dụng Command Object. Kết quả thực hiện trên cơ sở dữ liệu (Database) sẽ được lưu vào Recordset, trên đối tượng này ta có thể duyệt và lấy ra một hay nhiều Record. Sau đây ta sẽ xem xét cụ thể cách sử dụng của từng đối tượng (Object). 1. Đối tượng Connection: Để sử dụng đối tượng Connection, trước tiên ta phải tạo ra một Instance cho nó, đây thực sự là một thể hiện của đối tượng (Object) này trong ASP. Phát biểu tạo ra Instance cho Connectin có cú pháp như sau: <% Connection_name = Server.Creatobject ( “ ADODB.Connection ”) %> Thông thường trong một ứng dụng nếu ta cần có một liên kết với DataSource cố định cho tất cả các trang thì khi đó ta sẽ đặt Instance của Connection có mức hoạt động ở mức độ Application, bằng cách phát biểu Instance ở trên vào các thủ tục Application_Onstart( ) <% Sub Application_Onstart ( ) Set Connection_name = Server.Creatobject (“ADODB.Connection”) End Sub %> hoặc thiết lập cho Connection ở mức độ Session như sau: <% Sub Sessiom_Onstart ( ) Set Connection_name = Server.Creatobject(“ADODB.connection”) End Sub %> Hoặc tạo File sử dụng chung. Tuy nhiên ta có thể xem xét thêm việc tối ưu cho các Connection trong một ứng dụng có nhiều người sử dụng (User) truy xuất tới cơ sở dữ liệu ( Database), đó là khả năng Connctionpooling của ODBC. Connection Pooling: Các ứng dụng cơ sở dữ liệu truyền thống đều tạo một mối liên kết tới cơ sở dữ liệu ( Database) mà nó sử dụng, còn các ứng dụng cơ sở dữ liệu ( Database) trên Web lại mở và đóng các liên kết, các liện kết này ở mỗi trang Web. Một phương pháp cho các ứng dụng cơ sở dữ liệu ( Database) trên web là tạo ra một sự liện kết liên tục với cơ sở dữ liệu của từng người sử dụng (User) và lưu trữ trong đối tượng Session. Tuy nhiên phương pháp này có thể làm gia tăng số lượng các người sử dụng ( User) kết nối tới cơ sở dữ liệu mà không làm việc và chỉ đạt được độ tin cậy đối với các Web Site có sự lưu thông dữ liệu thấp. Connection pooling được kích hoạt mặc nhiên trong ASP, ta có thể loại bỏ bằng cách thiết lập giá trị Register Entry Start Connection về giá trị 0 Các phương thức của đối tượng Connection Open Method: Sử dụng để mở một kết nối với cơ sở dữ liệu (Database). Sau khi tạo một Instance cho đối tượng liên kết dữ liệu (Connection object), ta có thể mở kết nối với Data Source để có thể truy xuất dữ liệu, cú pháp cho phương thức trong VBscript như sau: Connection.Open connecstring User Password Trong đó Connecstring là chuỗi định nghĩa Data Source Execute method: Phương thức này cho phép thực thi một câu lệnh, tác động lên DataSource. Theo trình tự sau khi đã có một kết nối tới DataSource,ta có thể sử dụng nó với phương thức Execute với cú pháp trong VBscript như sau Connection.Execute Command, Recordaffected,Option Trong đó thông số Option có các giá trị khác nhau tương ứng với mỗi loại Commantext. Các giá trị của Option theo bảng sau: Giá trị Danh hiệu hằng tương ứng Mô tả command text 0 Adcmdunknown Giá trị này mặc định khi định nghĩa 1 Adcmdtext Commandtext là một câu lệnh (ví dụ như SQL) 2 Adcmdtable Tên của table mà ta sẽ tạo một Recordset từ đó 3 Adcmdstoredpro Một Stored Procedure Thông thường các giá trị trên sẽ được gán cho tên (danh hiệu), hằng và được cài đặt trong file Include. Close method: trong các trang ASP, sau khi đã xử lý xong dữ liệu trên DataSource, trước khi kết thúc trang sử dụng phải đóng lại các kết nối đã mở. Việc đóng kết nối nhờ phương thức Close Cú pháp như sau: Connection.Close Nếu chương trình không thực hiện việc này thì ASP sẽ tự động đóng Connection đã mở trong trang, mỗi khi người sử dụng tham khảo qua trang khác (đi khỏi tầm hoạt động của biến Instance). Nếu ta tạo Instance và mở kết nối trong các thủ tục Application_Onstart hoặc Session_ Onstart thì đóng các Connection này sẽ được thể hiện trong thủ tục Onend 2. Đối tượng Command Thay vì phải sử dụng phương thức Execute của đối tượng Connection để Query hay Update data Source, ta có thể sử dụng đối tượng Command để thi hành các thao tác với cơ sở dữ liệu. Việc tạo Instance cho đối tượng Command cũng giống như đối tượng Connection. Command_name = Server.Creatobject (“ ADODB.Command ”) Tuy nhiên để sử dụng đối tượng này ta cần xem xét các phương thức và thuộc tính kèm theo. Các phương thức (Method): Creat Paramater: Dùng để tạo một đối tượng (thông số ) trong tập thông số. Execute: Dùng để thực thi lệnh được đặc tả trong trong thuộc tính Commandtext. Các thuộc tính ( Properties): Activeconnection: Chỉ định đối tượng nào được sử dụng trong đối tượng Command. Commandtext: Chỉ định câu lệnh cần thực thi trên cơ sở dữ liệu Commandtimeout: Xác định thời gian thực thi lệnh, giá trị thời gian thực thi lệnh tính bằng giây Commandtype: Cho phép kiểu query đặc tả trong commandtext Prepared: Tạo ra lệnh chuẩn trước khi thực thi Tạo Activeconnection Sau khi đã có các Instance của các đối tượng kết nối (Connection Object) đã được kết nối với cơ sở dữ liệu, và các đối tượng command (Command Object). Lúc này nếu muốn sử dụng đối tượng command (Command Object) ta phải gán tên của Connection thích hợp (Connection nào kết nối tới cơ sở dữ liệu cần làm việc ) vào cho thuộc tính Activeconnection của đối tượng command (Command Object) Command_name.Activeconnection = Command_name Thực thi Query Ta có thể sử dụng phương thức Execute của Command gần giống như Connection, tuy nhiên điểm khác với Connection là đối tượng Command nếu ta có dự định thi hành một lệnh nào đó thì ta phải đọc cho các giá trị thuộc tính Commandtext, Parameter.. <% OConn = Server.CreateObject(“ADODB.Connection”) OCmd = Server.CreateObject(“ADODB.Command”) OConn.Open (“Pubs”, “sa”, “”); OCmd.ActiveConnetion = oConn; OCmd.CommandText = “DELETE* FROM Table”; OCmd.CommandType = 1; ‘thể hiện commandtext là một SQL OCmd.Prepared = true ‘thực hiện compile câu lệnh OCmd.Execute(); OCmd.ActiveConnection = nothing ; %> Ta gán giá trị Commandtimeout ở giá trị thích hợp, thông thường là 30, nếu để giá trị này là 0 thì ADO sẽ thực thi cho đến khi tác vụ được hoàn tất Sử dụng thông số cho SQL Nếu như Query cần thực thi có yêu cầu thông số, thì ta phải thêm các thông số này vào Collection Parameter, trước khi thực thi câu lệnh đối với phương thức Execute của đối tượng Connection không có khả năng này. Khi sử dụng Query có tham số thì cú pháp của phương thức có dạng như sau: Command.Execute(Recordaffected|, Parameter, Option); Record và Option có chức năng giá trị như trong đối tượng Connection (Connection object). Tham số Parameter là một dãy thông số được thực hiện trong một mảng (Array), mỗi một phần tử của mảng là một thông số, theo thứ tự các thông số trong câu lệnh. Để tìm hiểu cách tạo ra các thông số trong danh sách các thông số câu lệnh ta xem các thuộc tính (Method) và các phương thức (Properties) của Parameter Collections, trong phần tiếp theo. Tạo và thêm thông số vào Collection Đối tượng Parameter Collection là đối tượng lưu giữ các thông số cho Query, mà sẽ được thực thi bởi đối tượng Command (Command Object). Thay vì phải đưa các thông số này vào ngay khi thực hiện Query. Ta sẽ thực hiện nó trước trong Parameter Collection, điều này đựơc phép thực hiện nhờ các phương thức (Method )và các thuộc tính (Properties) của Parameter. Các phương thức (Method): Append: Thêm một thông số vào Collection Delete: Xoá một thông số trong Collections Refesh: Cập nhật Collection để phản ánh sự thay đổi thông số trong đó Các thuộc tính (Properties): Count: Trả về các thông số trong Collections Item: Được sử dụng để lấy giá trị của một thông số trong Collections mỗi phần tử Parameter Collection có thể coi như một đối tượng thông số (Parameter Object) và chúng cũng có các thuộc tính riêng như: Attribute: Thể hiện kiểu dữ liệu mà thông số đó chấp nhận Derection: Thể hiện hướng của thông số là Input hay Output, hay cả hai Name: Tên thông số Numberscale: Số chữ số thập phân trong thông số kiểu số Precision: Chữ số của thông số kiểu số Size: Kích thước lớn nhất, theo byte Type: Kiểu dữ liệu thông số Value: Giá trị gán cho thông số Để thêm một thông số đi vào Collection, trước tiên ta phải tạo một Instance cho đối tượng thông số (Parameter Object) và thiết lập các giá trị thuộc tính cho nó sau khi sử dụng phương thức Append. Các bước cần thực hiện khi tạo danh sách tham số <% OParam = OCmd.CreateParameter(Name, size Direction, Value); OCmd.Parameter.Append (OParam); %> Để lấy giá trị trong thông số Collection ta có thể sử dụng OCmd.Parameter.Item(index); hoặc OCmd.Parameter(index); hoặc OCmd.Parameter (tên thông số); hay là OCmd.Parameter.Item(tên thông số); 3. Đối tượng Recordset: Bằng cách sử dụng các đối tượng Connection và Command ta có thể thực thì các Query để thêm ( Add), cập nhật (Update) hay xoá (Delete) một Recordset trong Data Source. Tuy nhiên trong các ứng dụng thì ta cũng phải thực hiện việc lấy ra các Recordset từ ADO để hiện giá trị chúng trong trang Web. Để lấy lại giá trị trả về từ các Query, chúng ta phải sử dụng đối tượng Recordset, thực chất nó được hiểu như một bảng trong bộ nhớ, và nó cung cấp cho ta các phương thức, Properties để dễ dàng truy xuất các Record trong đó Các phương thức (Method) Addnew: Là phương thức dùng để tạo ra một Record trong Update Recordset Close: Đóng các đối tượng Recordset và các đối tượng con của chúng Delete: Xoá đi một Record hiện hành trong Recordset Move: Dịch chuyển vị trí Record hiện tại Movefisrt Movenext Moveprevious Các phương thức dịch chuyển con trỏ Movelast Open: Mở một Record mới, sau khi mở song thì con trỏ nằm ở vị trí đầu tiên trong Recordset Requery: Thực hiện lại Query. Lưu các thay đổi trên các Record hiện hành. Các thuộc tính (Properties) Absoluteposition: Số thứ tự của Record hiện hành. BOF (Begin of file): Có giá trị True nếu con trỏ nằm ở Record đầu tiên. Cursortype: Kiểu con trỏ được sử dụng trong Recordset Recordcount: Trả về số Record trong Recordset Tạo Recordset Để có được một biến Recordset thì ta làm như sau: Recordset_name = Server.Creatobject(“ ADODB.Recordset ”); Sau khi đã có biến Recordset rồi ta có thể khởi tạo giá trị cho nó bằng cách lưu kết quả trả về, mỗi khi thi hành các phương thức Execute của đối tượng Connection hay Command ví dụ như sau: Recordset_name = ConnetionObject.Execute(CommandText, Recordaffected, option); Hoặc Recordset_name = ConnetionObject.Execute(CommandText, Parameter, option); Ta cũng có thể tạo một Recordset bằng cách sử dụng phương thức Open theo Cú pháp: Recordset_name.Open(Source,ActiveConnection,CursorType,LockType, Option); Trong đó: Source: Là Command Object, hay một lệnh SQL.. Activeconnection: Là một tên của Connection đã được mở kết nối với cơ sở dữ liệu cần làm việc. Cursortype: Là kiểu con trỏ sử dụng khi mở Recordset, thông số này có kiểu số và được đặt bằng các tên hằng tương ứng. + Adopenforwardonly = 0 là giá trị mặc định, khi chọn thông số này thì thì Record được mở ra chỉ cho phép ta duyệt các Recorset theo một chiều từ đầu đến cuối, tuỳ chọn này cũng không cho ta bỏ hay thêm các Record. + Adopenkeyset =1 khi mở Recordset ở chế độ này, khi Recordset được mở có khả năng cho phép ta cập nhật các Record, tuy nhiên nó ngăn cản sự truy xuất tới một Record mà người sử dụng (User) khác thêm vào Recordset. + Adopenkeyset = 2 chế độ này cho phép tất cả các thao tác như thêm vào, loại bỏ sửa đổi Record trong Recordset. Cho phép thấy được sự thay đổi Record do người sử dụng (User) khác thực hiện. Ở chế độ này cho phép duyệt qua tất cả các chiều. + Adopenstatic = 3 gần giống như Adopenforwardonly + Locktype: Là kiểu Locking sử dụng khi mở Recordset. Bao gồm các giá trị sau: Adlockreadonly =1 ta không thể thay đổi dữ liệu bằng chế độ khoá này. Adlockpessimistic=2 cho phép thay đổi dữ liệu trên Record, sự thay đổi này sẽ có tác dụng ngay trên Datasource Adlockopetimistic = 3 sẽ khoá Record mỗi khi cập nhật (Update) Adlockbatchoptimistic = 4 thực hiện việc cập nhật theo bó Đóng Recordset Sau khi sử dụng xong một Recordset, hay trước khi mở lại ta phải thực hiện việc đóng Recordset lại bằng phương thức: Recordset_name.Close Duyệt qua các Record trên Recordset Khi ta đã có một Recordset, để hiển thị hay truy xuất tới mỗi Record trong đó ta có thể sử dụng các phương thức duyệt như: Movenext, Movefisrt, Movelast, Moveprovious. Với nguyên tắc gần giống như duyệt các Record trong một file có cấu trúc, tức là tồn tại một con trỏ tưởng tượng, vị trí hiện tại của con trỏ cũng chính là vị trí mà ta sẽ lấy được nội dung, khi ta lấy nội dung kế tiếp hay phía trước cũng như các Record ở vị trí đầu cuối Recordset, ta sử dụng phương thức di chuyển con trỏ: Movenext, Movefisrt, Moveprevious, Movelast. Với cú pháp: Recordset_name.Movenext ( ); Recordset_name.Movelast ( ); Recordset_name.Moveprevious ( ); Recordset_name.Movelast ( ); Recordset_name.Movefirst ( ); Khi di chuyển như vậy để tránh việc đưa con trỏ đến vị trí không xác định, thông thường ta sử dụng các thuộc tính của Recordset như BOF, EOF. Các thuộc tính này có ý nghĩa như sau: Nếu BOF có giá trị true nghĩa là con trỏ ở vị trí đầu Recordset, khi Recordset được mở thì luôn có giá trị này Khi con trỏ đã đi qua Record cuối cùng trong Recordset, thì EOF có giá trị True. Làm việc với Recordset thông qua Fields Collections: Ta có thể truy xuất tới mỗi trường (fields) của mỗi Record trong Recordset bằng cách sử dụng Collection Fields với các thuộc tính như: Count, Item... Recordset_name.Field.Item(“Ten Fields”) trả về nội dung có trong Record hiện tại. Recordset_name.Field.Item(“ Index ”): Trả về nội dung của trường (Fields) thứ tự (Index) trong Record hiện tại. Recordset_name.field(“Index”): Trả về tên trường (fields) thứ tự (Index) trong Record hiện tại. Chú ý: Rằng chỉ số của các trường (fields) trong Record được đánh số từ 0 cho tới giá trị Recordset_name.Field.Count – 1. CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG Thiết kế cơ sở dữ liệu Thiết bị Matb Tentb Chungloai Tinhnang Xuatxu Serial Trangthai Ghichu Lich sử Matb Tentb Hong Ngaysua 1 Nhiều Quan hệ trong cơ sở dữ liệu: (Relationships) Sơ đồ trên thể hiện quan hệ giữa thiết bị với lịch sử thiết bị đây là quan hệ một chiều vì một thiết bị có thể bị hỏng nhiều lần. Cấu trúc bảng mật khẩu: Tên Field Kiểu Dữ Liệu Kích Thước Username Text 30 Password Text 30 Nhóm Text 1 Mô tả: Username: Tên người quản trị để truy cập, người sử dụng phải nhập Password: Mật khẩu để truy cập, người sử dụng phải nhập Nhóm: Là nhóm người quản trị, chọn trong optionbox Cấu trúc bảng thiết bị: Tên Field Kiểu Dữ Liệu Kích Thước Matb Text 30 Têntb Text 30 Chungloại Text 30 Tinhnang Text 30 Xuatxu Text 50 Serial Text 50 Trangthai Yes/no Ghichu Text 50 Mô tả: Matb: Là mã thiết bị người sử dụng phải nhập. Têntb: Là tên thiết bị người sử dụng phải nhập. Chungloai : Là chủng loại của thiết bị, người sử dụng phải nhập Tinhnang: Là tính năng kỹ thuật của thiết bị, người sử dụng phải nhập. Xuatxu: Là nơi sản xuất của thiết bị, người sử dụng phải nhập. Serial: Là số seri của thiết bị, người sử dụng phải nhập. Trạngthái: Là trạng thái thiết bị ( Tốt hay không tốt), người sử dụng chỉ việc chọn Check box Ghichu: Là nhưng chú ý về thiết bị, người sử dụng phải nhập. Cấu trúc bảng lịch sử Tên field Kiểu dữ liệu Kích thước Matb Text 30 Tentb Text 30 Honggi Text 50 Ngayhong Date/time ID Inc Mô tả: Matb: Là mã thiết bị, người dùng phải nhập Tentb: Là tên thiết bị, người dùng phải nhập Honggi: Là chỗ hỏng của thiết bị, người sử dụng phải nhập Ngayhong: Là ngày hỏng, người sử dụng phải nhập ID: Là chỉ số, chỉ số này tự tăng. Định nghĩa dữ liệu: Bảng mật khẩu: Tên filed Các ràng buộc Username [A-Z]; [a-z];[0..9]; Space Password [A-Z]; [a-z];[0..9]; Space Nhom [1, 2, 3] Bảng thiết bị Tên field Các ràng buộc Mã thiết bị [A-Z]; [a-z];[0..9]; Space Tên thiết bị [A-Z]; [a-z];[0..9]; Space Chủng loại [A-Z]; [a-z]; Space Tính năng kỹ thuật [A-Z]; [a-z];[0..9]; Space Xuất xứ [A-Z]; [a-z];[0..9]; Space Serial [A-Z]; [a-z];[0..9]; Space Trạng thái 0,1 Ghi chú [A-Z]; [a-z]; pace Bảng lịch sử: Tên field Các ràng buộc Mã thiết bị [A-Z]; [a-z];[0..9]; Space Tên thiết bị [A-Z]; [a-z];[0..9]; Space Hỏng gì [A-Z]; [a-z];[0..9]; Space Ngày hỏng Mm/dd/yy 2. Mô hình sử dụng trang Web Nếu người quản trị mà đăng nhập đúng thì sẽ vào một trong ba trang, trái lại sẽ bị đưa đến trang Error. Truy cập Quản trị Quản lý Hệ thống Error Đăng nhập sai Sơ đồ sử dụng Web từ trang quản trị: Bổ sung Xoá Sửa Cập nhật Thống kê theo nhóm Lập phiếu Tổng hợp Thống kê thiết bị hỏng Bổ sung Xoá Sửa Cập nhật Lập phiếu Tổng hợp Thống kê theo nhóm Thống kê thiết bị tốt Quản trị Bổ sung Xoá Sửa Cập nhật Lập phiếu Tổng hợp Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Tổng hợp Bổ sung Xoá Sửa Cập nhật Lập phiếu Tổng hợp Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Bổ sung Xoá Sửa Cập nhật Tổng hợp Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Bổ sung Xoá Sửa Cập nhật Lập phiếu Thống kê thiết bị tốt Thống kê thiết bị hỏng Bổ sung Xoá Sửa Cập nhật Lập phiếu Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Tiếp sơ đồ trên Tiếp Xoá Bổ sung Sửa Cập nhật Lập phiếu Tổng hợp Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Bổ sung Xoá Cập nhật Lập phiếu Tổng hợp Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Bổ sung Xoá Sửa Lập phiếu Tổng hợp Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Chú ý: Tất cả các trang đều quay về được trang quản trị Sơ đồ sử dụng Web từ trang quản lý Quản lý Thống kê thiết bị tốt Thống kê thiết bị hỏng Thống kê theo nhóm Tổng hợp lịch sử Thống kê thiết bị hỏng Thống kê theo nhóm Tổng hợp lịch sử Thống kê thiết bị tốt Thống kê theo nhóm Tổng hợp lịch sử Thống kê thiết bị tốt Thống kê thiết bị hỏng Thống kê theo nhóm Thống kê thiết bị tốt Thống kê thiết bị hỏng Tổng hợp lịch sử Chú ý: Tất cả các trang đều quay về được trang quản lý Sơ đồ sử dụng Web từ trang hệ thống Hệ thống Liệt kê người sử dụng Bổ sung người sử dụng Loại bỏ người sử dụng Cập nhật người sử dụng Bổ sung người sử dụng Loại bỏ người sử dụng Cập nhật người sử dụng Liệt kê người sử dụng Loại bỏ người sử dụng Cập nhật người sử dụng Liệt kê người sử dụng Bổ sung người sử dụng Cập nhật người sử dụng Liệt kê người sử dụng Bổ sung người sử dụng Loại bỏ người sử dụng Chú ý: Tất cả các trang đều quay về trang hệ thống 3. Thiết kế trang 3.1. Trang truy cập: Khi người quản trị muốn vào hệ thống thì phải đăng nhập tên và Password. Trang này có chức năng lấy tên truy cập và mật khẩu rồi so sánh với cơ sở dữ liệu xem có đúng hay không nếu đúng thì sẽ cấp cho một trong ba quyền để đi vào một trong ba trang tiếp Nếu tên truy cập và mật khẩu sai thì sẽ nhảy vào trang Error 3.2. Trang error Trang này sẽ hiện khi người sử dụng đăng nhập sai Hướng người sử dụng trở về trang đăng nhập 3.3. Trang quản trị Trang này sau khi người sử dụng đăng nhập thành công và có quyền là nhà quản trị thì sẽ vào được trang quản trị này. Trên trang này người sử dụng có thể lựa chọn những quyền để xử lý dữ liệu 3.4 Trang quản lý Sau khi đăng nhập đúng Password và Username thì sẽ vào được trang này. Trang này có tác dụng thông báo cho người sử dụng biết người quản lý sẽ có những quyền gì trong hệ thống và cho phép người sử dụng chọn các quyền đó từ các Menu. Như thống kê thiết bị tốt, thống kê thiết bị hỏng, tổng hợp lịch sử, thống kê theo nhóm 3.5 Trang hệ thống Sau khi đăng nhập đúng Password và Username thì sẽ vào được trang này. Trang này có tác dụng thông báo cho người sử dụng biết người hệ thống sẽ có những quyền gì trong hệ thống và cho phép người sử dụng chọn các quyền đó từ các menu. Như liệt người sử dụng, bỏ sung người sử dụng, cập nhật người sử dụng, loại bỏ người sử dụng. 3.6 Trang bổ sung thiết bị: Sau khi người quản trị vào đựơc trang quản trị Chọn quyền bổ sung thiết bị. Người sử dụng phải nhập các thông số bắt buộc trên trang này là: Mã thiết bị, Tên thiết bị. Còn các thông số khác như: Chủng loại, tín năng kỹ thuật, xuất xứ, serial, ghi chú tuỳ vào thiết bị có hay không, hoặc tuỳ người quản trị. Trừ trạng thái thiết bị thì chọn trong Checkbox Sau đó người chọn, chọn Submit để bổ sung thêm thiết bị Trang này có tác dụng là bổ sung thiết bị thêm vào cơ sở dữ liệu. 3.7 Trang xoá thiết bị Vào được trang này khi người sử dụng có được quyền xóa thiết bị Người quản trị chỉ việc lựa chọn mã thiết bị trong Combobox để xoá. Sau đó người sử dụng chọn Submit, sau khi chọn Submit thì yêu cầu người sử dụng phải xác nhận có xoá hay không, nếu có thì chọn OK trái lại chọn Cancel Trang này có tác dụng loại bỏ những thiết bị không cần, hay hết hạn sử dụng. 3.8 Trang sửa thiết bị: Trang này xuất hiện sau khi người quản trị có quyền sửa thiết bị từ trang quản trị Khi có thiết bị thay đổi thuộc tính thì trang sửa thiết bị này sẽ đáp ứng Người quản trị bắt đầu chỉ việc chọn mã thiết bị từ Combobox. Sau khi Submit người sử dụng sẽ vào trang sửa các thuộc tính của thiết bị Trong trang người quản trị không thể thay đổi hay thuộc tính đó là mã thiết bị và tên thiết bị. Các thuộc tính như: Chủng loại, tính năng kỹ thuật, xuất xứ, serial, ghi chú người sử dụng có thể thay đổi. Trừ trạng thái thiết bị thì chọn trọng Checkbox Sau khi thay đổi xong người sử dụng chọn Submit để thay đổi thuộc tính của thiết bị có mã đã chọn 3.9 Trang cập nhật tình trạng thiết bị Trang này dùng để cập nhật tình trạng thiết bị khi thiết bị bị sửa chữa hay thay thế. Trong trang này người sử dụng phải làm: Chọn mã thiết bị trong Combobox, nhập tên thiết bị, nhập chỗ hỏng của thiết bị và nhập ngày hỏng (ngày hỏng phải nhập dạng dd/mm/yy ) của thiết bị. Sau khi nhập các thông tin xong chọn submit thì lịch sử một thiết bị hình thành. 3.10 Thống kê thiết bị theo nhóm: Trong trang này đầu tiên người sử dụng chỉ việc nhập dạng mã thiết bị Sau đó chọn submit để thống kê thiết bị Sau khi chọn submit thì trang tiếp sẽ hiển thị các thiết bị thuộc cùng nhóm 3.11 Thống kê thiết bị theo tình trạng Thống kê thiết bị theo tình trạng tốt Sau khi người sử dụng có quyền thống kê thiết bị theo tình trạng tốt, thì người sử dụng chỉ việc chọn vào trang này thì tất cả các thiết bị có tình trạng tốt sẽ được hiển thị. Trong trường hợp thiết bị tốt nhiều hơn năm thiết bị, nếu muốn xem tiếp thì chọn Next còn muốn xem lại thì chọn Previuos Trang thống kê thiết bị theo tình trạng không tốt Sau khi người sử dụng có quyền thống kê thiết bị theo tình trạng không tốt, người sử dụng chỉ vào trang này thì tất cả các thiết bị có tình trạng không tốt sẽ được hiển thị. Trong trường hợp thiết bị không tốt nhiều hơn năm thiết bị , nếu muốn xem tiếp thì chọn Next còn muốn xem lại thì chọn Previuos 3.12 Tổng hợp lịch sử thiết bị Trang này dùng để xem lại lịch sử của một thiết bị, xem một thiết bị hỏng mấy lần và hỏng những gì vào những ngày nào. Sau khi người sử dụng có quyền vào trang này thì người sử dụng chỉ việc chọn mã thiết bị cần cập nhật từ Combobox và chọn submit Sau khi chọn submit thì ta sẽ được một trang tiếp là trang hiển thị lịch sử của thiết bị này 3.13 Trang bổ sung người sử dụng Trang này dùng để thêm một người sử dụng mới vào trong hệ thống Để sử dụng trang này người quản trị phải nhập tên người sử dụng, password và lựa chọn một trong ba nhóm 1, 2 hoặc 3 Sau đó người sử dụng chọn submit thì ta sẽ được một người quản trị mới 3.14 Trang liệt kê người sử dụng Để vào trang này người sử dụng chỉ việc chọn trang này từ trang hệ thống. Trang này có tác dụng liệt kê toàn bộ người sử dụng, trong hệ thống. 3.15 Trang cập nhật người sử dụng Để vào trang này thì người hệ thống chỉ việc chọn trang này trên trang hệ thống. Trang này có tác dụng thay đổi các thuộc tính của người sử dụng. Để cập nhật một người sử dụng, thì người sử dụng phải chọn tên người sử dụng từ Combobox. Sau đó chọn Submit để đưa người sử dụng tới một trang tiếp theo. Trang tiếp theo này là trang chính để cập nhật người sử dụng Trang này có tác dụng để thay đổi các thuộc tính của người sử dụng như: Password và Nhóm. Nếu người sử dụng chọn người để cập nhật là Admin thì chỉ có thể thay đổi Password của Admin mà thôi Nếu người sử dụng trong trang trước chọn tên người cập nhật khác Admin thì có thể thay đổi Password và Nhóm của người sử dụng. Trong trang này tuỳ người sử dụng có muốn thay đổi Password hay nhóm cho người sử dụng. Việc thay đổi đối với Password thì phải nhập, còn đối với nhóm thì chỉ việc chọn trong Option. Sau đó chọn Submit thì đã cập nhật thành công một người sử dụng 3.16 Xoá người sử dụng: Trang này có tác dụng loại bỏ một người sử dụng ra khỏi hệ thống. Để vào trang này người sử dụng chỉ việc chọn trang này sau khi vào trang hệ thống. Để xoá một người sử dụng ban đầu người sử dụng chỉ việc chọn tên người sử dụng từ Combobox. Sau đó chọn Submit. Sau khi chọn submit người sử dụng phải xác định lại có thực sự muốn xoá người sử dụng này không nếu quyết định xoá thì chọn OK thì một người sử dụng sẽ loại khỏi hệ thống trái lại chọn Cancel từ hộp MSGbox thì ta lại quay lại chính trang này. CHƯƠNG 4: KẾT LUẬN Dựa vào những kiến thức đã học đựơc cùng với việc thu thập tài liệu, sự hướng dẫn tậm tình của các thày cô giáo em đã hoàn thành được đề tài này. Mục đích của đề tài này là hỗ trợ cho người quản trị hệ thống về mặt quản lý thiết bị. Em mong rằng nếu được sự giúp đỡ của thầy cô giáo về mặt chuyên môn cũng như sự giúp đỡ của một doanh nghiệp nào đó thì đề tài này sẽ được đưa vào ứng dụng và mang lại hiệu quả tốt nhất cho người sử dụng.

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

  • docxXây dựng một phần mềm quản lý thiết bị.docx