1. Kiến thức sau khi thực hiện đề tài:
Trong quá trinh thực hiên đề tài bản thân em đã nghiên cứu và học tập qua thầy cô, bạn học rất nhiều kiến thức, nhất là kiến thức về phân tích thiết kế hệ thống thông tin, thiết kế Cơ sở dữ liệu, những kiến thức về lập trình Visual Basic và SQL Server.
2. Các kết quả đã thực hiện được trong đề tài:
Sau hơn 3 tháng nỗ lực học tập, nghiên cứu tài liệu và thực hiện em đã hoàn thành chương trình “QUẢN LÝ HỌC SINH HỌC NGHỀ” cho trung tâm KTTH – HN với các ứng dụng phù hợp với điều kiện hoạt động của Trung tâm, làm công cụ đắc lực góp phần cho Trung tâm hoàn thành tốt nhiệm vụ được giao.
o Quản lý tốt học sinh theo học các lớp nghề phổ thông
o Cấp phát chứng chỉ nghề chính xác.
o Tìm kiếm thông tin về học sinh nhanh chóng
o Thống kê kịp thời theo các yêu cầu, làm cơ sở để xây dựng kế hoạch trong thời gian tới.
98 trang |
Chia sẻ: baoanh98 | Lượt xem: 901 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Chương trình quản lý học sinh học nghề trung tâm kỹ thuật tổng hợp - Hướng nghiệp Cà Mau, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
m được điều này ta làm như sau:
B1: Tạo một ứng dụng Visual Basic mới với một nút lệnh duy nhất.
B2: Thêm điều khiển Crystal Report vào ứng dụng thông qua menu Project, Components.
B3: Tạo một instance của điều khiển Crystal Report trên biểu mẫu bằng cách nhấn đúp chuột lên thanh công cụ. Điều khiển kết quả được gọi là Crystal Report1.
B4: Trong sự kiện Click của nút lệnh đưa vào đoạn chương trình sau:
Private Sub cmdReport_Click()
CrystalReport1.ReportFilename=
App.Path & “\product.rpt”
CrystalReport1.PrintReport
End Sub
B5: Thi hành ứng dụng và nhấn nút Run, báo cáo thi hành hiển thị kết quả cho người sử dụng trong cửa sổ preview. Đến đây, người sử dụng có thể xuất báo cáo ra máy in bằng cách nhấn nút Print. Dùng thuộc tính Destination của điều khiển Crystal Report, ta có thể gởi dữ liệu trực tiếp đến máy in, bỏ qua cửa sổ Preview.
c. Sử dụng bản mới hơn của Crystal Report:
Phiên bản thương mại của hệ thống Crystal Report 6.0 đưa ra một số tính năng mới:
Báo cáo con: tương tự tính năng tạo báo cáo con của Microsoft Access. Nó cho phép bạn hiển thị quan hệ một – nhiều.
Tuỳ chọn định dạng mới: bao gồm khả năng thi hành báo cáo theo cột và hiển thị các kiểu báo cáo khác nhau bên cạnh nhau.
Báo cáo có điều kiện: Hiển thị khác nhau tuỳ theo trạng thái của dữ liệu.
Trình điều khiển cơ sở dữ liệu trực tiếp: cho nhiều platform chính (bao gồm: Oracle, Informix, Microsoft SQL Server), cho phép bỏ qua trình điều khiển ODBC quy ước, loại bỏ yêu cầu thiết lập nguồn dữ liệu ODBC, loại bỏ nhu cầu thiết lập nguồn dữ liệu ODBC trên máy Client.
Xuất ra: Microsoft Word và Microsoft Excel.
Hỗ trợ Web: bao gồm khả năng xuất ra trang Web HTML và tạo các báo cáo chứa trên Server.
Hỗ trợ những nguồn dữ liệu không phải quan hệ: như là Microsoft Exchange Server và nhật ký sự kiện của WinNT.
III. KHẢ NĂNG DỮ LIỆU MỚI CỦA VISUAL BASIC 6.0
Visual Basic 6.0 cung cấp các đối tượng dữ liệu ActiveX (ActiveX Data Object – ADO). Trong các phiên bản trước của Visual Basic, truy cập dữ liệu được giải quyết thông qua DAO (Data Access Object). ADO tổng hợp và thay thế các kỹ thuật DAO. ADO dễ dùng hơn và có tầm hoạt động rộng hơn, ta có thể dùng ADO để kết nối với cơ sở dữ liệu của một máy để bàn hoặc một máy chủ chứa cơ sở dữ liệu từ xa. Hơn thế nữa ADO cho phép truy cập nhiều kiểu dữ liệu.
Kỹ thuật ADO hiện nay chứa trong điều khiển mới, điều khiển dữ liệu ADO. Nó trông tương tự các điều khiển dữ liệu của các phiên bản trước, nhưng khi nhìn vào Property Page của điều khiển ta sẽ thấy có nhiều điểm khác. Điều khiển ADO cho phép kết nối với các tập tin cơ sở dữ liệu để bàn hay các máy chủ ODBC trên mạng, hoặc ta có thể tạo một kết nối mới đến các cơ sở dữ liệu khác.
Ngoài ADO, Visual Basic 6.0 còn có một bộ công cụ và kỹ thuật mới giúp truy cập dữ liệu dễ dàng hơn. Trình thiết kế môi trường dữ liệu cho phép xem xét và thao tác dữ liệu trong cơ sở dữ liệu khác nhau. Bởi vì bản thân môi trường dữ liệu là những đối tượng, ta có thể sử dụng chúng như một điều khiển dữ liệu. Thậm chí ta có thể gắn nó với các điều khiển khác như hộp văn bản hay nhãn.
Một vài điều khiển dữ liệu mới cho phép ta tận dụng các thế mạnh của điều khiển dữ liệu ADO. Điều khiển DataGrid cho phép xem dữ liệu dưới dạng bảng các dòng và cột. DataList và DataCombo tương tự như DBList và DBCombo trong các phiên bản trước của Visual Basic, ta có thể dùng chúng để lấy một danh sách dữ liệu từ điều khiển ADO trong cấu hình hộp danh sách (ListBox) hoặc hộp kết hợp (ComboBox). Ta có thể dùng điều khiển linh động hơn như FlexGrid để xem những dữ liệu phức tạp.
Visual Basic 6.0 mở rộng khả năng báo cáo với trình báo cáo dữ liệu cho phép tạo, xem trước và in các báo cáo trong Visual Basic tương tự như Access. Ta có thể lấy các điều khiển báo cáo từ hộp công cụ báo cáo dữ liệu mới cà đưa vào biểu mẫu báo cáo dữ liệu. Sau đó gọi phương thức PrintReport() của báo cáo dữ liệu.
IV. Xây dựng ứng dụng visual basic với ado
ADO là công nghệ truy cập cơ sở dữ liệu hướng đối tượng tương tự DAO (Data Access Object) và RDO (Remote Data Object).
ADO hiện nay được Microsoft xem là kỹ thuật để truy cập cơ sở dữ liệu từ Web Server. Bởi vì ADO được cung cấp dưới dạng thư viện ActiveX Server, ta có thể thoải mái dùng ADO trong ứng dụng Visual Basic. Trong thực tế, bằng nhiều cách ta sẽ thấy rằng sử dụng ADO để làm việc với cơ sở dữ liệu thì dễ hơn các kỹ thuật khác.
1. Cài đặt và thiết lập tham chiếu đến ADO trong ứng dụng Visual Basic:
ADO được cài đặt như một phần của Visual Basic 6.0, sau khi cài đặt xong ta bắt đầu sử dụng nó bằng cách thiết lập tham chiếu đến thư viện ADO trong ứng dụng Visual Basic, tương tự như khi ta thiết lập tham chiếu đến thư viện DAO hay RDO.
B1: Trong đề án Visual Basic, chọn Project, References.
B2: Hộp thoại References xuất hiện.
B3: Chọn vào hộp đánh dấu “Microsoft AtiveX Data Object 2.0 Library”, rồi nhấn OK.
Khi tham chiếu thư viện ADO trong đề án phải bảo đảm rằng không có tham chiếu đến thư viện “Microsoft AtiveX Data Object 2.0 Recordset”. Đây là phiên bản loại nhẹ của thư viện ADO được thiết kế để sử dụng trên phía client của ứng dụng client/ Server. Nó chỉ hổ trợ các đối tượng Recordset và Field. Nếu nhận thấy rằng không thể tạo được instance của đối tượng connection hay command trong ứng dụng ADO ta có thể nghĩ đến nguyên nhân này.
2. Sử dụng ADO với các thư viện đối tượng truy cập dữ liệu khác:
Nếu bạn tạo ứng dụng được thiết kế để sử dụng ADO kết hợp với thư viện đối tượng truy cập dữ liệu khác, như là DAO, cần phải cẩn thận phân biệt giữa đối tượng Recordset của DAO và Recordset của ADO, nhớ là chúng không thể đổi chổ cho nhau được.
Nếu ta tham chiếu vừa DAO vừa ADO trong đề án và ta tạo một biến Recordset, làm thế nào để nhận biết Recordset của DAO hay của ADO? Câu trả lời là thứ tự ta thiết lập tham chiếu vào đề án. Nếu ta thêm một tham chiếu đến thư viện DAO trước, tạo đối tượng Recordset sẽ cho ta một Recordset kiểu DAO; ta cần dùng tên lớp đầy đủ ADODB.Recordset để tạo đối tượng Recordset của ADO một cách tường minh.
Nếu không muốn tham chiếu trực tiếp đến thư viện đối tượng trong chương trình, ta có cách khác. Ta có thể kiểm soát thư viện đối tượng nào được truy nhập mặc định bằng cách dùng giá trị mức ưu tiên trong hộp thoại References.
Ví dụ: để cấp cho thư viện đối tượng DAO mức ưu tiên cao hơn thư viện đối tượng ADO ta thực hiện các bước sau:
B1: Trong đề án Visual Basic, chọn Project, references.
B2: Tham chiếu đến Microsoft DAO 3.51 Object Library và Microsoft ActiveX Data Object 2.0 Library.
B3: Nhấn vào tham chiếu đến thư viện đối tượng DAO.
B4: Nhấn vào mũi tên trỏ lên - xuống có tên là Priority. Tham chiếu đến thư viện đối tượng DAO di chuyển về phía trên danh sách. Điều này có nghĩa là DAO sẽ được dùng khi ta tạo một đối tượng có cùng tên với đối tượng trong thư viện ADO.
Điều khiển qua mức ưu tiên của mô hình đối tượng bảo đảm mỗi khi ta tạo một biến đối tượng Recordset trong chương trình, đó là Recordset của DAO, không phải Recordset của ADO (để tạo một Recordset của ADO, ta phải chỉ ra rõ ràng trong chương trình là ADODB.Recordset).
Khi dùng mức ưu tiên cho thư viện đối tượng, ta lại phải xử lý xung đột về tên gọi giữa 2 thư viện, một giải pháp khác tốt hơn là chỉ rõ tên thư viện của từng đối tượng.
3. Dùng đối tượng connection của ADO để kết nối với nguồn dữ liệu:
Dùng phương thức Open của đối tượng connection để thiết lập kết nối với nguồn dữ liệu. Để thông báo cho ADO cách nối với nguồn dữ liệu ta phải cung cấp thông tin dưới dạng chuỗi kết nối tương tự chuỗi kết nối của ODBC. Ta dùng thuộc tính connectionString để thực hiện điều này. Ta còn có khả năng tuỳ chọn để chọn trình cung cấp nào sẽ được dùng bằng cách quy định giá trị của thuộc tính Provider của đối tượng connection.
* Chỉ ra trình cung cấp OLE DB và chuỗi kết nối:
Nếu không chỉ ra trình cung cấp, hoặc ta không dùng đối tượng connection, ta sẽ có một trình cung cấp mặc định là trình cung cấp ODBC, MSDASQL.
Thuộc tính Provider của đối tượng connection là chuỗi ký tự chỉ ra kết nối mà trình cung cấo OLE DB sẽ dùng.
Dùng chuỗi kết nối trong ADO để cung cấp thông tin về cách thức kết nối với server cơ sở dữ liệu. Khi ta dùng trình cung cấp ODBC cho OLE DB, chuỗi kết nối tương tự chuỗi kết nối ODBC. Điều này có nghĩa là thông tin chính xác được mong chờ bởi trình điều khiển ODBC có thể thay đổi tuỳ theo cách thực hiện. Đối với các trình cung cấp khác, chuỗi kết nối có thể có một cú pháp hoàn toàn khác.
Khi ta dùng trình cung cấp ODBC, thuộc tính connecString có thể là một DSN (tên nguồn dữ liệu) hay nó là kết nối không có DSN. Đây là ví dụ của một kết nối cơ sở dữ liệu dùng trình cung cấp ODBC với DSN:
Cn.Provider = “MSDASQL”
Cn.ConnectString = “DSN=Novelty;”
Sử dụng DSN trong chuỗi két nối dĩ nhiên yêu cầu một DSN tên là Novelty phải thực sự tồn tại trên máy client.
Trường hợp kết nối không có DSN:
Cn.Provider = “MSDASQL”
Cn.ConnectString = “Drive={SQL Server}; DATABASE=Novelty;UID=randy;PD=prince;”
Kết nối này sẽ nối kết server nhanh hơn bởi vì nó không cần đọc thông tin DSN từ bảng đăng ký của windows. Tuy nhiên nó kém linh hoạt vì nó gắn chặt thông tin nối với chương trình đã được biên dịch.
Để kết nối với cơ sở dữ liệu bảo mật dùng ADO và trình cung cấp Jet, ta phải cung cấp thêm thông tin thông qua tập hợp Properties của đối tượng Connection. Thường là tên người sử dụng, mật khẩu, vị trí của cơ sở dữ liệu chứa thông tin về bảo mật:
cn.Provider = “Microsoft.Jet.OLEDB.3.51”
cn.ConnectionString = “c:\data\mydata.mdb”
cn.Properties (“Passwword”) = “mypass”
cn.Properties (“User ID”) = “myname”
cn.Open
Để nối với một cơ sở dữ liệu SQL Server, ta dùng trình cung cấp SQLOLEDB.1:
cn.Provider = “SQLOLEDB.1”
cn.ConnectionString = “DATABASE = mydata; SERVER = mysvr;UID = user;PWD=mypass;”
4. Làm việc với con trỏ:
Tương tự RDO và DAO, ADO hỗ trợ một số kiểu con trỏ. Ngoài ra việc cung cấp hỗ trợ duyệt qua từng mẫu tin tại một thời điểm, các kiểu con trỏ khác nhau cho phép ta điều khiển cách quản lý của một Recordset.
Quy định vị trí của con trỏ bằng cách gán giá trị cho thuộc tính Recordset. Sau đây là các kiểu con trỏ của đối tượng Connection:
Kiểu con trỏ
Hằng
Mô tả
Phía Client
adUseClient
Tạo con trỏ phía Client
Phía Server
adUseServer
Tạo con trỏ phía Server
Chọn con trỏ kiểu Client nghĩa là ADO và OLEDB xử lý các hoạt động của con trỏ. Con trỏ kiểu Client thường không có sẵn trên server.
Ví dụ: trong ADO, ta có thể tạo một Recordset không kết nối, cho phép ta thao tác với các mẫu tin mà không có kết nối thường xuyên đến server. Khả năng này là một chức năng của thư viện con trỏ phía Client.
Trong ADO, thuộc tính CursorLocation áp dụng cho cả đối tượng Recordset và Connection. Nếu ta gán thuộc tính CursorLocation của đối tượng Connection, tất cả recordset mà ta tạo từ kết nối đó đều có cùng vị trí con trỏ như đối tượng Connection.
Ngoài việc chỉ ra vị trí con trỏ, ta có khả năng tạo 4 kiểu con trỏ khác nhau trong ADO. Việc chọn lựa con trỏ tuỳ theo sự cân đối giữa chức năng và khả năng hoạt động.
Chỉ ra kiểu con trỏ bằng cách gán thuộc tính CursorType của đối tượng recordset. Sau đây là các kiểu con trỏ có thể tạo trong ADO:
Kiểu con trỏ
Hằng
Mô tả
Forward - only
adOpenForwardOnly
Không dùng con trỏ, ta chỉ có thể chuyển về phía trước trong Recordset, sử dụng phương thức MovePrevious và Movefirst sẽ sinh lỗi.
Keyset (Trong DAO được gọi là Dynaset)
AdOpenKeyset
Ta không thể thấy các mẫu tin mới do những người sử dụng khác thêm vào, nhưng khi họ sữa đổi, hay xóa mẫu tin sẽ làm ảnh hưởng đến Recordset ta đang làm việc, đây là kiểu con trỏ hiệu quả nhất, đặc biệt là Recordset khá lớn.
Dynamic
adOpenDynamic
Ta có thể thấy toàn bộ thay đổi trên dữ liệu do những người sử dụng khác thực hiện trong khi ta đang mở Recordset, đây là kiểu con trỏ ít hiệu quả nhất, nhưng mạnh mẽ.
Static (Trong DAO gọi là Snapshot)
adOpenStatic
Bản sao của toàn bộ dữ liệu của một Recordset, kiểu này đặc biệt hữu dụng khi ta đang tìm kiếm dữ liệu hay thi hành báo cáo, kiểu con trỏ này rất hữu dụng cho những Recordset nhỏ.
Nếu ta chỉ hiển thị dữ liệu chứa trong cơ sở dữ liệu thì con trỏ kiểu Forward – only sẽ làm khả năng hoạt động của ứng dụng trở nên hiệu quả hơn.
* Xác định con trỏ và các tính năng khác được hỗ trợ bởi một trình cung cấp:
Bởi vì OLE DB và ADO được thiết kế để cho phép truy cập đến nhiều nguồn dữ liệu, ứng dụng cần xác định các tính năng do một trình cung cấp nhất định hỗ trợ. Có thể là trong khi một hệ cơ sở dữ liệu quan hệ cho phép tạo con trỏ kiểu Forward – only ở phía server, hệ cơ sở dữ liệu trên máy cá nhân hoặc cơ sở dữ liệu dựa trên tập tin có thể không có tính năng này.
Phương thức Supports của đối tượng ADO Recordset xác định kiểu con trỏ do trình cung cấp dữ liệu hỗ trợ.
Bảng sau đây liêtk kê các giá trị truyền vào phương thức Supports để xác định tính năng được hổ trợ bởi đối tượng Recordset:
Hằng
Mô tả
adAddNew
Thêm mẩu tin mới vào Recordset.
adApproxPosition
Thuộc tính SbsolutePage và AbsolutePosition có sẵn, chúng được dùng để kết hợp với thuộc tính PageSizi và PageCount của đối tượng Recordset để cho phép xác định trang chứa mẩu tin hiện hành.
adBookmark
Có thể quy định đánh dấu trang sách trong Recordset.
adDelete
Mẩu tin được xóa trong Recordset.
adHoldRecords
Mẩu tin được trả về từ cơ sở dữ liệu mà không cần ghi các sữa đổi hiện có vào server.
adMovePrevious
Có thể cuộn tới lui trong Recordset.
adResync
Phương thức Resync có sẵn.
adUpdate
Recordset cập nhật được.
adUpdateBatch
Recordset có thể cập nhật được hàng loạt với phương thức UpdateBatch. Ta có thể nạp các sữa đổi trên nhiều mẩu tin trong một hoạt động duy nhất, cải tiến hiệu quả Client/ Server
5. Khóa mẩu tin trong ADO:
Tương tự các mô hình đối tượng truy cập cơ sở dữ liệu khác, ADO cho phép quy định các kiểu khóa mẩu tin khác nhau. Ta dùng tính năng này khi cần kiểm soát cách thức cập nhật các mẩu tin với nhiều người sử dụng trong cơ sở dữ liệu.
Quy định chế độ khóa cho đối tượng Recordset của ADO thông qua thuộc tính LockType. Dưới đây là danh sách 4 kiểu khóa mẩu tin:
Hằng
Mô tả
adLockReadOnly
Cấm cập nhật mẩu tin
adLockPessimistic
Khóa trang bi quan. Mẩu tin trong Recordset bị khóa khi bắt đầu sữa đổi, và tiếp tục khóa đến khi thi hành phương thức Update hay di chuyển sang mẩu tin khác.
adLockOptimistic
Khóa trang lạc quan. Mẩu tin chỉ bị khóa ngay lúc thi hành phương thức Update hay di chuyển sang mẩu tin khác.
adLockBatchOptimistic
Khóa trang lạc quan hàng loạt. Hỗ trợ cập nhật nhiều mẩu tin cùng lúc.
Điểm quan trọng cần lưu ý là phương thức khóa mặc định trong ADO là adLockReadOnly. Đây là một trong những điểm khác biệt đáng kể giữa lập trình ADO và DAO, vì trong DAO, bởi mặc định Recordset được phép sữa đổi. Điều này có nghĩa là nếu ta không đổi thuộc tính LockType và CursorType thì các recordset của ADO sẽ luôn là chỉ đọc.
Sự hiện diện của các kiểu khóa mẩu tin tùy thuộc vào những gì trình cung cấp dữ liệu hỗ trợ. Ta có thể dùng phương thức Supports của đối tượng Recordset để xác định trình cung cấp có hỗ trợ kiểu khóa mẩu tin hay không.
6. Mở và đóng kết nối đến nguồn dữ liệu:
Để phát yêu cầu đến nguồn dữ liệu dùng ADO, ta mở kết nối đến nguồn dữ liệu đó. Ta dùng phương thức Open của đối tượng Connection. Khi hoàn tất các nguồn dữ liệu, ta đóng nó bằng phương thức Close của đối tượng Connection.
Cú pháp: cn.Open [connect], [userid], [password]
Toàn bộ tham số của Open đều là tuỳ chọn, nếu không cung cấp chuỗi kết nối trong tham số của phương thức Open ta có thể cung cấp nó với thuộc tính ConnectionString của đối tượng Connection. Hiệu quả như nhau.
Cú pháp của chuỗi kết nối thay đổi tuỳ theo trình cung cấp dữ liệu.
Khi đã hoàn tất với đối tượng Connection của ADO, ta nên luôn luôn đóng nó bằng phương thức Close.
Cú pháp: cn.Close
Đóng kết nối một cách tường minh bảo đảm rằng tài nguyên bất kỳ liên quan với kết nối này đều được nhả đúng quy ước.
7. sử dụng đối tượng Recordset của ADO để thao tác với dữ liệu:
Đối tượng Recordset của ADO tương tự Recordset của DAO và rdoResultset của RDO, là phương pháp truy cập thông tin được trả về từ trình cung cấp dữ liệu. Recordset của ADO có nhiều thuộc tính và phương thức trùng với Recordset của các mô hình khác, vì thế có thể làm việc với chúng tương tự các Recordset khác.
Thủ tục Recordset của ADO tương tự rdoResultset của RDO. Tuy nhiên ADO thêm một thay đổi lý thú: khả năng tạo đối tượng Recordset không đòi hỏi một đối tượng Connection ngầm.
Chuỗi lệnh tạo Recordset của ADO có thể là tên bảng, tên truy vấn hay câu lệnh SQL (nó hoạt động tương tự phương thức OpenRecordset trong DAO).
Kỹ thuật này tiện dụng trong trường hợp ta không cần kết nối thường xuyên đến cơ sở dữ liệu, ta chỉ vào, lấy dữ liệu và trở ra. Nếu ứng dụng muốn có kết nối thường xuyên với cơ sở dữ liệu, ta nên mở và duy trì một đối tượng Connection. Tốt nhất nên giữ kết nối được mở liên tục đến cơ sở dữ liệu thay vì lặp đi lặp lại việc mở và đóng.
Ta có thể dùng đối tượng Recordset để cập nhật và thêm mẩu tin mới:
a. Thêm mẩu tin mới:
Các bước thực hiện:
B1: Mở Recordset
B2: Thi hành phương thức AddNew
B3: Gán giá trị các trường trong đối tượng Recordset
B3: Lưu mẩu tin bằng cách thi hành phương thức Update của đối tượng Recordset.
b. Cập nhật mẩu tin:
Các bước thực hiện:
B1: Mở Recordset
B2:Gán giá trị các trường trong đối tượng Recordset (ta không cần thi hành phương thức edit của đối tượng Recordset như ta thực hiện với DAO, ADO không làm như thế).
B3: Lưu mẩu tin bằng cách thi hành phương thức Update của đối tượng Recordset.
8. Tạo Recordset ngắt kết nối:
Khi dùng thư viện con trỏ phía Client của ADO, ta có khả năng ngắt kết nối với server và tiếp tục làm việc với dữ liệu. Cách này làm cho ứng dụng trở nên linh hoạt, bởi vì nhiều người sử dụng có thể làm việc với dữ liệu nếu họ không cần kết nối với server tại một thời điểm.
Để ngắt kết nối với server trong ADO ta quy định thuộc tính ActiveConnection của đối tượng Recordset là nothing. Client sẽ tiếp tục làm việc với dữ liệu thậm chí khi nó không kết nối với server.
a. Thi hành một truy vấn sử dụng các đối tượng Command và Parameter của ADO:
Sau khi kết nối thành công với nguồn dữ liệu thông qua đối tượng Connection, ta bắt đầu phát các lệnh trên kết nối đó. Ta dùng đối tượng Command của ADO.
Trong các ví dụ trước, ta chỉ dùng đối tượng Connection và Recordset, không dùng Command. Nói chung ta dùng đối tượng Command khi ta muốn thi hành một thủ tục chứa sẵn (stored procedure) hay ta cần phát một truy vấn có tham số.
b. Dùng đối tượng Field của ADO để truy cập dữ liệu của Recordset:
Dùng đối tượng Field và tập hợp Fields khi ta có một đối tượng Recordset của ADO và ta muốn đọc hay sữa đổi giá trị trong trường dữ liệu của mẩu tin hiện hành. Kỹ thuật này gần như đồng nhất với tập hợp cùng tên trong DAO và RDO.
Nói chung, nếu đã quen thuộc với việc truy cập trường dữ liệu trong đối tượng Recordset của DAO ta sẽ thấy ở đây không có gì khác.
c. Dùng tập hợp Errors của ADO để xử lý lỗi:
Trong ADO hay các mô hình đối tượng truy cập cơ sở dữ liệu khác, một số lỗi có thể xảy ra.
Trong Visual Basic, một lỗi phát sinh khi ADO bắt gặp lỗi. Tương tự DAO và RDO ta có thể lặp xuyên qua tập hợp Errors để hiển thị hay xử lý trên các thông báo lỗi được phát sinh giữa Client và Server.
d. Sử dụng tập hợp Properties của ADO để kiểm tra các thuộc tính đặc biệt của một trình cung cấp:
Ngoài các đối tượng và thuộc tính quy ước, DAO cung cấp tập hợp Properties mở rộng có thể được gán cho từng đối tượng trong mô hình đối tượng. Tương tự, ADO cũng cung cấp tập hợp này, nhưng với sự khác biệt quan trọng, các đối tượng Properties của ADO không thể được tạo ra hay sữa đổi bởi ứng dụng. Thay vào đó, chúng chịu sự điều khiển của trình cung cấp dữ liệu.
Với trình cung cấp ODBC cho OLE DB, số thuộc tính của trình cung cấp được mở rộng rất nhiều. Nhớ rằng kiểu và giá trị của các thuộc tính này thay đổi tuỳ theo trình cung cấp.
V. TRUY VẤN CƠ SỞ DỮ LIỆU:
1. Câu truy vấn là gì?
Là một lệnh cơ sở dữ liệu để lấy về các mẫu tin. Sử dụng các câu truy vấn ta có thể lấy dữ liệu từ một hoặc nhiều trường trong một hay nhiều bảng. Ta còn có thể ép các dữ liệu lấy về theo một hợac nhiều ràng buộc, gọi là các tiêu chí, để hạn chế số lượng dữ liệu lấy về.
Các câu truy vấn trong Visual Basic chủ yếu dựa trên SQL, SQL là ngôn ngữ khá chuẩn để lấy về dữ liệu hoặc là thao tác với cơ sở dữ liệu.
Trong Visual Basic 6.0, ta không bị hạn chế vào việc sử dụng SQL để tiến hành các câu truy vấn. Sử dụng các đối tượng dữ liệu ActiveX – ADO, nguồn dữ liệu có thể biểu lộ các hoạt động của chúng thông qua các ngôn ngữ truy vấn khác hơn là SQL.
Kiểm tra các câu truy vấn với cửa sổ DATA VIEW:
Để tạo một câu truy vấn bằng cách sử dụng cửa sổ Data View, ta theo các bước sau:
B1: Trong Visual Basic tạo một đề án EXE mới.
B2: Từ menu View của Visual Basic, chọn Data View Window. Cửa sổ Data View xuất hiện. Lưu ý rằng ta có thể gắn cửa sổ Data View vào cạnh của cửa sổ Visual Basic, giống như cửa sổ Project Explorer và cửa sổ Properties.
Để truy vấn một nguồn dữ liệu, trước hết ta cần tạo một kết nối dữ liệu. Một kết nối dữ liệu cung cấp thông tin về cách thức kết nối với nguồn dữ liệu. Các bước tạo một kết nối dữ liệu:
B1: Trong cửa sổ Data View, nhấn nút phải chuột lên cửa sổ Data Link.
B2: Từ menu bật ra, chọn a Add Link. Hộp thoại Data Link Properties xuất hiện.
B3: Chọn một cơ sở dữ liệu để kết nối sau đó nhấn nút Next.
B4: Trang connection xuất hiện. Chọn một cơ sở dữ liệu bằng cách nhấn vào nút ở bên phải hộp văn bản có nhãn “Select or enter a database name”.
B5: Sau khi chọn một cơ sở dữ liệu, nhấn nút Test Connection. Ta phải nhận được một hộp thông điệp chỉ định rằng cơ sở dữ liệu đã được mở.
B6: Nhấn OK. Một kết nối dữ liệu mới đến cơ sở dữ liệu hiện ra, gõ tên cho kết nối dữ liệu mới.
Kết nối dữ liệu tồn tại trong môi trường thiết kế Visual Basic cho đến khi ta huỷ nó. Nó không gắn với bất kỳ đề án Visual Basic nào và luôn luôn xuất hiện mỗi khi ta sử dụng Visual Basic. Điều này rất thuận tiện nếu ta cần viết nhiều ứng dụng trên cùng một cơ sở dữ liệu.
Bây giờ sau khi tạo xong một kết nối dữ liệu, ta có thể tạo một câu truy vấn SQL trên cơ sở dữ liệu. Nhưng để làm được điều này, ta cần tạo một thiết kế Data Environment theo các bước sau:
B1: Từ cửa sổ Project, chọn Add Data Environment.
B2: Thiết kế Data Environment mới xuất hiện.
B3: nhấn và rê bảng tblcustomer từ cửa sổ Data View vào thiết kế Data Environment. Một kết nối mới xuất hiện chứa bảng này.
B4: Trong thiết kế Data Environment, nhấn nút phải chuột lên bảng. Từ cửa sổ bật ra chọn Properties.
B5: Hộp thoại Table Properties xuất hiện. Nhấn SQL Statement.
B6: Nhấn nút SQL Builder. Cửa sổ Query Design hiện ra.
B7: Nhấn và rê bảng tblcustomer từ cửa sổ Data View vào phần trên của cửa sổ truy vấn.
B8: Nhấn và rê các cột FirstName, LastName và Address từ bảng vào lưới của cửa sổ truy vấn. Ta có thể thấy truy vấn SQL được thiết lập khi ta rê các trường vào lưới.
B9: Từ menu Query của Visual Basic chọn Run.
a. Sử dụng cửa sổ Data View để tạo các câu truy vấn phía Server:
Nếu nguồn dữ liệu là Microsoft SQL Server, ta có thể tạo một câu truy vấn phía Server, gọi là View, bằng cách sử dụng cửa sổ Data View. Các câu truy vấn thuộc loại này dễ quản lý và có thể thi hành nhanh hơn các câu truy vấn phía Client.
Để tạo một View bằng cách sử dụng cửa sổ Data View, ta theo bác bước sau:
B1: Tạo một kết nối dữ liệu đến một cơ sở dữ liệu SQL Server ( bằng cách sử dụng thủ tục trình bày trong phần trước).
B2: Nhấn vào dấu cộng bên trái của tên kết nối dữ liệu để hiển thị các danh mục đối tượng của nó (có bốn danh mục).
B3: Nhấn nút phải chuột vào danh mục Views. Từ cửa sổ bật ra chọn New View.
B4: Cửa sổ New View hiện ra.
B5: Nhấn và rê bảng tblcustomer từ cửa sổ Data View vào cửa sổ New View. Cửa sổ truy vấn đã thay đổi để phản ánh sự thêm vào.
B6: Để chỉ ra rằng ta muốn xem tất cả các cột trong bảng tblcustomer, rê mục “All Columns” từ bảng vào lưới cột. Dữ liệu từ bảng được trả về.
Bây giờ thì View đã được xây dựng, ta có thể lưu nó vào cơ sở dữ liệu. Một khi được lưu, nó sẽ tồn tại trên Server và có thể được dùng bới bất kỳ quá trình nào. Để lưu trữ View ta thực hiện các bước sau:
B1: Từ menu File của Visual Basic, chọn Save View.
B2: Hộp thoại Save View hiện ra (hộp thoại này không phải là hộp thoại tập tin vì ta không lưu view như là một tập tin – ta lưu nó như là một đối tượng ở trong Server). Đặt tên của View mới và nhấn OK. View được chứa trong cơ sở dữ liệu trên Server.
b. Sử dụng các truy vấn của Data Environment:
Điểm lý thú của cửa sổ Query Designer là nó cho phép thi hành câu lệnh Select hợp lệ bất kỳ của SQL trên một bảng bất kỳ trong cơ sở dữ liệu với ít rắc rối nhất. Ta có thể thực hiện điều này bằng cách nhấn nút phải chuột lên một lệnh truy vấn trong thiết kế Data Environment và sau đó chọn design từ menu bật ra. Mỗi khi cửa sổ thiết kế truy vấn xuất hiện, ta có thể nhập câu lệnh SQL bất kỳ trong phần SQL của cửa sổ.
Sau khi gõ vào câu lệnh SQL, thi hành truy vấn bằng cách chọn menu Query, Run (ta còn có thể nhấn nút phải chuột lên phần trên của cửa sổ thiết kế truy vấn và chọn Run từ menu bật ra).
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU SQL SERVER
I. GIỚI THIỆU SƠ LƯỢC VỀ SQL SERVER:
SQL viết tắt bởi: Structure Query Language (ngôn ngữ cấu trúc truy vấn).
Microsoft SQL Server 2000 là một côngcụ thiết kế, điều khiển và quản trị cơ sở dữ liệu, các biến cố server, các MS SQL Server Object và SQL Server với tính thực thi cao.
Các thành phần của cơ sở dữ liệu:
Databases: Có lưu trữ các đối tượng được dùng để trình bày, quản lý và truy cập cơ sở dữ liệu.
Tables: Lưu trữ các dữ liệu và xác định các quan hệ giữa các table.
Database Diagrams: Trình bày các đối tượng cơ sở dữ liệu dưới dạng đồ họa và đảm bảo cho ta giao tiếp với cơ sở dữ liệu mà không cần thông qua các Transact-SQL.
II. LÀM VIỆC VỚI SQL SERVER 2000:
1. Quản lý Device:
Định nghĩa: Device là một file của hệ điều hành, dùng để lưu trữ các database và các transaction log hoặc dùng để backup. Các Device có extersion là *.DAT. Device được tạo là MASTER.DAT, MSDB.DAT và MSDBLOG.DAT, đây là các Device chứa database cơ sở của Microsoft SQL Server giúp toàn bộ hệ thống hoạt động được.
Các loại Device:
+ DataBase Devive: Device dùng để lưu trữ DataBase.
+ Dump Devive: Được dùng để backup DataBase và Transaction log.
+ Các DataBase Device có thể đặc thuộc tính 12 default. Điều này có nghĩa là khi chúng ta tạo DataBase mà không xác định tên Device chứa nó thì Microsoft SQL Server sẽ tạo default device.
2. DataBase:
Định nghĩa: DataBase là một tập hợp được tổ chức để chứa Data, tập hợp này có cấu trúc logic và được hiểu bởi Microsoft SQL Server, Microsoft SQL Server mở rộng khái niệm Data, cho phép bao gồm số liệu và các loại Object khác nhau như View, Stored, Procedure, Triggers,. . .
Transaction log:
+ Là tập hợp nhật ký các quá trình Data được thay đổi, nhờ vào quá trình này,khi cập nhật số liệu, nếu quá trình cập nhật bị hư giữa chừng thì Microsoft SQL server có thể dựa vào Transaction log để khôi phục giá trị của DataBase trước khi quá trình cập nhật hư xảy ra.
+ Khi ta tạo DataBase ta có thể khai báo kích thước, vị trí của Transaction log, nếu ta không khai báo thì Microsoft SQL server sẽ tự động tạo.
+ Ta có thể yêu cầu Microsoft SQL server thực hiện Transaction cho các lệnh của mình bằng cách dùng lệnh sau ở bắt đầu tập hợp lệnh:
BEGIN TRANSACTION [Transaction_name]
Và kết thúc bằng lệnh:
COMMIT TRANSACTION [Transaction_name]
+ Thực chất Transaction log là một bảng chứa trong DataBase, bảng này tên là Syslog.
3. Các loại Object trong DataBase:
Table: Dùng để lưu các số liệu của chúng ta và được tổ chức thành hành và cột. Mỗi một cột xác định một loại số liệu khác nhau.
Mỗi cột cần được xác định tên, số liệu, chiều dài và có được là null (nullabiliti) hay không. Tên cột phải duy nhất trong một bảng (không trùng tên cột khác).
Nullabiliti: nếu giá trị của cột không cần có một giá trị nào đó, cột được gọi là Nullabiliti. Không cần giá trị không có nghĩa có giá trị là không.
View: Cho phép ta tạo những số liệu chọn lọc từ hàng và cột của một hoặc nhiều bảng, điều này có nghĩa cho phép người sử dụng chọn lọc một số dòng và cột thỏa những điều kiện nào đó.
+ Sử dụng View có những thuận lợi sau:
Điều khiển những gì người sử dụng được quyền, giúp cho tính chất dễ dùng và bảo mật của DataBase Server, làm đơn giản việc giao tiếp với người sử dụng bằng cách tạo View từ những lệnh truy xuất thường dùng.
Cú pháp tạo View:
Createview [owner,]view_name [(column_name[,column_name])]
[withenctyption]
As select_statement
Ví dụ: Createview *from Nhap
Stored procedure: Khi chúng ta thi hành một lệnh, toàn bộ lệnh đó sẽ chuyển về Microsoft SQL Server dưới nguyên dạng văn bản của nó, khi Microsoft SQL Server nhận được lệnh này nó sẽ phân tích, biên dịch thi hành và trả về kết quả cho Users. Nếu mỗi tập lệnh nào đó được thường xuyên thi hành, thì Microsoft SQL Server sẽ thường xuyên lặp lại quá trình phân tích, biên dịch giống nhau, Stored procedure nhằm làm giảm quá trình này.
Trigger: Là một loại Stored procedure đặc biệt sẽ tự động thi hành khi User cập nhật data nào đó đã được liên kết với Trigger này, khi chúng ta cập nhật data trong một bảng hay nhiều bảng nào đó mà bảng này được liên kết với bảng đó.
4. Hệ thống security của Microsoft SQL Server:
a. Login ID:
Để có thể truy xuất Database, điều kiện đầu tiên là User cầncó Login ID để có thể kết nối vào Microsoft SQL Server. Khi cài đặc Microsoft SQL Server tạo ra một Login ID ban đầu là SA (System administrator). SA có quyền trên hệ thống Microsoft SQL Server, từ SA người quản trị sẽ tạo ra các Login ID cho các User khác.
b. Các chế độ security của Microsoft SQL:
Standard: Mỗi User muốn truy xuất phải cung cấp tên và Password.
Intergrated: Mô hình này tích hợp Microsoft SQL Server với NT Server. Các User kết nối vào mạng NT thì có thể truy xuất được Microsoft SQL Server mà không cần cung cấp thêm Username và Password nữa. Tuy nhiên mô hình này chỉ có thể chạy được với những User có khả năng từ một Workstation nào đó log vào được NT Server cài đặt Microsoft SQL Server. Điều này tốt đối với những mạng cục bộ và mạng Intranet, nhưng đối với Intranet thì điều này không thể thực hiện được vì User có nhiều nguồn gốc khác nhau, hệ điều hành khác nhau, tên khác nhau,...
Mixed: Khi ta cho phép User truy xuất lên database, ta phải liên kết Login ID với một database User trên database đó. Database User sẽ quyết định cụ thể User được truy xuất quyền gì. Như vậy, một User với một Login ID cho trước có thể tương ứng với nhiều database User trên các database khác, và có những quyền khác nhau trên những database đó phụ thuộc người quản trị hệ thống được xác định như thế nào.
Group: Mỗi một database có thể có nhiều Group khác nhau. Group cũng được xác định những quyền nào đó trên database. Mỗi database có sẵn một group public. Mỗi User có thể có tối đa hai group, trong đó có ít nhất là Group public. Việc gán quyền cho Group, sau đó gán User và group làm cho User đó cũng có quyền như Group, điều này làm giảm thời gian gán quyền cho các User.
c. Các mức độ phân quyền:
Mức độ hệ điều hành: mỗi User khi sử dụng máy tính trên mạng nói chung, thường phải thông qua chế độ security của hệ điều hành nào đó (thường là login).
Mức độ Microsoft SQL server: Mỗi User phải có Login ID.
Mức độ Database: Mỗi User phải được gán Database User tương ứng.
Mức độ Object (table, view hoặc store procedure): Mỗi database User còn được gán quyền cụ thể lên từng Object cụ thể trên database (được quyền đọc, ghi lên bảng, được quyền sử dụng view,...).
d. Các phân quyền theo User:
SA: Có quyền trên hệ thống Microsoft SQL Server.
Database Owner (DBO): Là người tạo ra database, có mọi quyền trên các object trong database, và có quyền gán quyền cho các database User.
Database Object Owner (DBOO): Là người tạo ra các object trên database. DBOO có mọi quyền trên object mà DBOO dã tạo ra.
DBO và SA là những User có quyền gán cho các User khác quyền tạo ra các object.
Các database User khác: Sẽ được cấp các quyền lên các object.
Về mức độ quyền theo thứ tự kể trên thì SA có quyền cao nhất, kế tiếp là DBO, DBOO rồi đến database User.
5. Tạo bảng (Table)
Trong hệ quản trị cơ sở dữ liệu, bảng (Table) là đơn vị lưu trữ dữ liệu cơ bản nhất. Bảng lưu giữ tất cả dữ liệu mà người sử dụng truy xuất. Khi tạo bảng, tên bảng và thuộc tính là hai yếu tố quan trọng mà ta cần xác định. Ngoài ra, với mỗi thuộc tính ta phải khai báo kiểu dữ liệu và các ràng buộc nếu cần. Tên bảng nhằm chỉ định đây là đối tượng duy nhất trong hệ quản trị cơ sở dữ liệu, còn tên thuộc tính dùng để phân biệt các thuộc tính trong bảng với nhau. Do đó, tên thuộc tính phải thỏa mãn tính duy nhất, không được trùng lặp trong phạm vi bảng. Thông qua khái niệm kiểu dữ liệu, miền dữ liệu của thuộc tính được xác định. Để chỉ định điều kiện mà các giá trị trong cột phải thỏa mãn, ta áp dụng các ràng buộc trên cột.
Trong SQL Server, để tạo bảng ta dùng lệnh CREATE TABLE.
Cú pháp:
CREATE TABLE tên bảng
(
tên cột 1 kiểu dữ liệu 1 [ràng buộc],
tên cột 2 kiểu dữ liệu 2 [ràng buộc],
. . . . . . . . . . . . . . . . . . . . [. . . . . . . . ],
tên cột N kiểu dữ liệu N [ràng buộc]
);
Theo cú pháp của lệnh CREATE TABLE, mỗi cột được định nghĩa thông qua dòng khai báo sau:
tên cột kiểu dữ liệu [ràng buộc]
Với các tuỳ chọn được đặt trong dấu ngoặc vuông.
Như vậy, mỗi dòng định nghĩa cột bắt buộc phải có tên cột và kiểu dữ liệu, còn ràng buộc là tuỳ chọn. Thông thường, khi dùng lệnh CREATE TABLE, ta nên đặt mỗi dòng định nghĩa cột trên một dòng cho dễ đọc. Các dòng ngăn cách nhau bởi dấu phẩy, trừ dòng cuối cùng theo sau bởi dấu đóng ngoặc. Sau cùng là dấu chấm phẩy kết thúc lệnh.
Khi tạo ràng buộc, SQL chuẩn yêu cầu ràng buộc phải được đặt tên. Tên này có thể được khai báo tường minh lúc tạo hay hiệu chỉnh bảng hoặc được hệ quản trị cơ sở dữ liệu đặt tự động. Tên ràng buộc do người sử dụng đặt gọi là ràng buộc hữu danh, còn tên do hệ quản trị cơ sở dữ liệu cấp gọi là ràng buộc vô danh. Đối với ràng buộc hữu danh, ta có thể áp dụng quy tắc đặt tên cho đối tượng cơ sở dữ liệu hay tuân theo định dạng sau:
CONSTRAINT tên bảng – tên cột – hậu tố
Trong đó CONSTRAINT là từ khóa chính bắt buộc, còn hậu tố là từ gồm một hay hai chữ cái cho biết kiểu ràng buộc. Đối với ràng buộc vô danh ta không chỉ định từ khóa CONSTRAINT đi kèm.
Bảng liệt kê danh sách các hậu tố thông dụng:
Hậu tố
Ý nghĩa
PK
Khóa chính
FK
Khóa ngoại
NN
Không NULL
U
Duy nhất
Bảng liệt kê một số ràng buộc cơ bản trên cột và bảng:
Ràng buộc
Định nghĩa
NOT NULL(*)
Cột không chứa giá trị NULL
UNIQUE (**)
Cột không chứa các giá trị trùng lắp
PRIMARY KEY (***)
Yêu cầu các giá trị nhập phải duy nhất và khác NULL
Mô tả cấu trúc bảng:
Nhằm đáp ứng nhu cầu xem thông tin và cấu trúc bảng, SQL cung cấp lệnh DESCRIBE hiển thị tên, kiểu dữ liệu và ràng buộc của các thuộc tính chưa trong bảng.
Cú pháp:
DESCRIBE tên bảng;
Đưa dữ liệu vào bảng:
Sau khi tạo bảng, bạn chèn thêm mẫu tin vào bảng bằng lệnh INSERT INTO. Quá trình thêm dữ liệu vào bảng lần đầu tiên gọi là quá trình tạo dữ liệu cho bảng.
Cú pháp:
INSERT INTO tên bảng (cột 1, cột 2,. . ., cột N)
VALUES (giá trị 1, giá trị 2, . . ., giá trị N);
Trong cú pháp lệnh trên, cột 1, cột 2,. . ., cột N là các tên cột, còn giá trị 1, giá trị 2, . . ., giá trị N là giá trị nhập cho cột tương ứng. Ta hãy nhớ rằng giá trị nhập vào phải cùng kiểu với kiểu dữ liệu của cột. Đồng thời ở mệnh đề Values, ta phải thiết lặp đầy đủ giá trị cho các cột có trong danh sách cột.
Lệnh COMMIT và ROLLBACK:
Để những thay đổi trên bảng bằng các lệnh INSERT, UPDATE, DELETE có hiệu lực, hệ quản trị cơ sở dữ liệu cung cấp câu lệnh COMMIT.
Cú pháp:
COMMIT [WORK];
Với từ khóa WORK là một chọn lựa.
Thật ra trước khi thực hiện lệnh COMMIT, mọi tác động trên bảng được lưu trong vùng đệm cơ sở dữ liệu hay vùng nhớ làm việc trong bộ nhớ chính. Nếu vì lý do nào đó, bạn thoát khỏi cơ sở dữ liệu trước khi xác nhận thay đổi thì dữ liệu sẽ không được ghi vào cơ sở dữ liệu và những thay đổi hoàn toàn không có hiệu lực. Trong môi trường đa người dùng, nếu bạn thay đổi một số dòng của bảng dữ liệu dùng chung thì những người khác trong hệ thống không thể nhận biết sự thay đổi cho đến khi bạn dùng lệnh COMMIT. Khi đó, bạn là người duy nhất có quyền truy xuất những dòng dữ liệu này. Nghĩa là những người sử dụng khác không thể xem nội dung hiện tại của dòng dữ liệu đang được hiệu chỉnh hay còn gọi là các dòng dữ liệu bị khóa. Sau khi xác nhận bằng lệnh COMMIT, các dòng được lưu vào cơ sở dữ liệu và được mở khóa. Kể từ thời điểm này, những người khác mới quan sát được sự thay đổi của dữ liệu.
Giả sử những thay đổi trên bảng (INSERT, UPDATE, DELETE) chưa được xác nhận, để hủy bỏ những thay đổi này, ta dùng lệnh ROLLBACK hay kết thúc phiên làm việc. Khi đó, mọi thay đổi trên các đối tượng cơ sở dữ liệu kể từ thời điểm xác nhận cuối cùng hoặc từ lúc người sử dụng bắt đầu phiên làm việc đều bị hệ quản trị cơ sở dữ liệu hủy bỏ.
Như vậy, lệnh ROLLBACK có tác dụng hủy bỏ hay ngừng transaction (giao dịch) hiện thời. Transaction là một đơn vị công việc luận lý, gồm một số thao tác trên cơ sở dữ liệu. Transaction thành công hay thất bại phụ thuộc vào kết quả của từng thao tác trong transaction. Nói cách khác nếu một thao tác thất bại, giao dịch xem như thất bại. Theo định nghĩa này transaction là không thể phân chia. Ngoài ra, transaction cũng rất bền vững, bởi vì một khi transaction được xác nhận, những thay đổi trên dữ liệu đảm bảo được ghi vào cơ sở dữ liệu, ngay cả khi hệ thống trục trặc. Transaction bắt đầu tại câu lệnh SQL đầu tiên sau lệnh COMMIT, ROLLBACK, hay một kết nối với cơ sở dữ liệu. Transaction kết thúc sau lệnh COMMIT, ROLLBACK, hay sau khi kết nối với cơ sở dữ liệu kết thúc. Tuy nhiên ta cần lưu ý khi dùng lệnh định nghĩa dữ liệu DLL vì hầu hết các hệ quản trị cơ sở dữ liệu ngầm đưa ra lệnh COMMIT ẩn sau khi thực hiện câu lệnh này.
Trong quá trình tương tác, giả sử ta thực hiện rất nhiều thay đổi trên bảng nhưng chua xác nhận bằng lệnh COMMIT. Sau đó ta phát hiện một số sai sót và muốn hủy bỏ chúng tại thời điểm này. Nếu ta dùng lệnh ROLLBACK, mọi thay đổi trên bảng sẽ bị hủy bỏ (kể cả những thay đổi đúng). Thực sự, bạn muốn quay lại trạng thái trước khi thực hiện các thay đổi không phù hợp trên vùng đệm cơ sở dữ liệu. Từ nhu cầu trên SQL đưa ra câu lệnh SAVEPOINT. Lệnh SAVEPOINT xác định vị trí cần quay lại trong giao dịch khi giao dịch chưa được xác nhận. Với ý nghĩa này, savepoint là thẻ đánh dấu trong vùng đệm cơ sở dữ liệu, cho phép bạn hủy bỏ một phần tác vụ của giao dịch hiện tại bằng cách quay về trạng thái cụ thể trước đó.
Cú pháp:
SAVEPOINT tên savepoint;
Với tên savepoint là tên duy nhất, không trùng lặp trong giao dịch. Thông thường tên savepoint là những chữ cái đơn, nhưng đôi khi cũng có thể gồm nhiều ký tự. Khi đó, tên savepoint phải tuân theo quy ước đặt tên cho đối tượng cơ sở dữ liệu. Savepoint rất hữu hiệu trong SQL dạng tương tác vì chúng cung cấp khả năng kiểm soát quá trình thực thi chương trình. Để trở lại trạng thái mong muốn trên vùng đệm cơ sở dữ liệu bạn dùng lệnh sau:
ROLLBACK tên savepoint.
Hoặc: ROLLBACK TO SAVEPOINT tên savepoint
Lệnh SELECT:
Lệnh SELECT là câu lệnh SQL được sử dụng nhiều nhất, có chức năng truy vấn và thu thập dữ liệu từ cơ sở dữ liệu. Vì vậy, lệnh SELECT còn được gọi là câu lệnh truy vấn.
Cú pháp:
SELECT cột 1, cột 2, cột 3, . . ., cột N
FROM bảng 1, bảng 2, . . ., bảng N
[WHERE điều kiện]
[ORDER BY cột 1 [ASC | DESC ][,cột 2 [ASC | DESC ]]...)];
Lệnh SELECT có hai mệnh đề bắt buộc là SELECT và FROM, còn WHERE và ORDER BY là những chọn lựa thêm. Như mọi lệnh SQL khác, lệnh SELECT cũng kết thúc bằng dấu chấm phẩy. Sau đây là chức năng của từng mệnh đề trong câu lệnh Select.
Mệnh đề Select liệt kê tên các cột cần hiển thị. Những thuộc tính được liệt kê trong mệnh đề này chính là tên các cột trong quan hệ kết quả.
Mệnh đề FROM liệt kê tên các bảng nguồn, nơi dữ liệu được thu thập. Như vậy, các cột xuất hiện trong mệnh đề SELECT phải là các cột thuộc bảng nguồn.
Mệnh đề WHERE định điều kiện mà các bộ dữ liệu của bảng nguồn phải thỏa.
Mệnh đề ORDER BY định thứ tự sắp xếp các hàng dữ liệu đã thỏa điều kiện ở mệnh đề WHERE. Mệnh đề này chỉ có hiệu lực khi hiển thị dữ liệu thu thập được, chứ không tác dụng trực tiếp lên các hàng bên trong bảng.
CHƯƠNG IV
KẾT LUẬN
Kiến thức sau khi thực hiện đề tài:
Trong quá trinh thực hiên đề tài bản thân em đã nghiên cứu và học tập qua thầy cô, bạn học rất nhiều kiến thức, nhất là kiến thức về phân tích thiết kế hệ thống thông tin, thiết kế Cơ sở dữ liệu, những kiến thức về lập trình Visual Basic và SQL Server.
Các kết quả đã thực hiện được trong đề tài:
Sau hơn 3 tháng nỗ lực học tập, nghiên cứu tài liệu và thực hiện em đã hoàn thành chương trình “QUẢN LÝ HỌC SINH HỌC NGHỀ” cho trung tâm KTTH – HN với các ứng dụng phù hợp với điều kiện hoạt động của Trung tâm, làm công cụ đắc lực góp phần cho Trung tâm hoàn thành tốt nhiệm vụ được giao.
Quản lý tốt học sinh theo học các lớp nghề phổ thông
Cấp phát chứng chỉ nghề chính xác.
Tìm kiếm thông tin về học sinh nhanh chóng
Thống kê kịp thời theo các yêu cầu, làm cơ sở để xây dựng kế hoạch trong thời gian tới.
Một số vấn đề còn hạn chế:
Do sử dụng Visual Basic kết hợp với SQL Server để viết chương trình, nên đôi khi còn gặp nhiều trở ngại trong quá trình thao tác cũng như tính bảo trì hệ thống, chương trình sử dụng chủ yếu trên một máy do đó việc chia sẻ thông tin cho các bộ phận khó khăn.
Do thời gian có hạn nên việc thực hiện chương trình với ý tưởng đưa thêm quản lý giáo viên, nhân viên vào chương trình chưa được.
Với thời gian thực hiện rất hạn hẹp nên ít nhiều hạn chế về các kỹ thuật trong khi lập trình.
Hướng phát triển và mở rộng của đề tài
Với nhu cầu cấp thiết về quản lý học sinh của Trung tâm, việc phát triển ý tưởng của đề tài theo em là rất cần thiết vì nó mang tính thực tiễn rất cao, trong thời gian tới để hoàn thiện hơn em muốn thực hiện tiếp một số chức năng nhằm nâng cao chương trình:
Chức năng chia sẻ thông tin đến nhiều đối tượng kể cả học sinh đã và đang theo học nghề tại Trung tâm.
Chức năng lưu trữ danh sách các phòng thi và lưu trữ chứng chỉ nghề tốt hơn, bảo mật hơn.
Kết luận
Tóm lại việc xây dựng đề tài với ý tưởng đã nêu trên đã góp phần vào việc quản lý chung cho cơ quan.
Với kiến thức đã được học tập và sự vươn lên của bản thân em hoàn thành được đề tài đúng hạn định.
Thông qua đề tài em đã bước đầu làm quen với hệ quản trị cơ sở dữ liệu, nhằm phát triển trong thời gian tới.
Mặc dù rất cố gắng và đầu tư nhiều, nhưng do thời gian và hạn chế của bản thân do đó chương trình vẫn chưa đạt được yêu cầu như mong muốn và tối ưu nhất.. . em rất mong nhận được sự đóng góp quí báu của thầy – cô và các bạn bè để em có thể thực hiện chương trình ngày càng tốt hơn, hoàn thiện.
Cuối cùng em xin chân thành cảm ơn thầy Ninh Xuân Hải và thầy cô trong khoa công nghệ thông tin trường Đại học kỹ thuật công nghệ Thành phố Hồ Chí Minh đã tạo mọi điều kiện thuận lợi cho em hoàn thành tốt luân văn này.
TÀI LIỆU THAM KHẢO
Lập trình Visual Basic 6.0
(Nhà xuất bản thống kê – Tác giả: TS. Trần Văn Tư và KS. Nguyễn Ngọc Tuấn)
Visual Basic 6.0 và Lập trình cơ sở dữ liệu
(Nhà xuất bản giáo dục – Tác giả: Nguyễn Thị Ngọc Mai)
Lập trình cơ sở dữ liệu Visual Basic 6.0
(Nhà xuất bản trẻ – Tác giả: Đậu Quang Tuấn)
Lập trình SQL căn bản
(Nhà xuất bản lao động xã hội – Tác giả: Đoàn Thiện Ngân)
Lập trình ứng dụng chuyên nghiệp SQL Server 2000
( Nhà xuất bản lao động xã hội – tác giả: Phạm Hữu Khang)
Phân tích và thiết kế hệ thống thông tin
(Nhà xuất bản đại học quốc gia hà nội – Tác giả: Nguyễn Văn Ba)
Tự học lập trình Cơ sở dữ liệu với Visual Basic 6.0
(Nhà xuất bản giáo dục – Tác giả: Nguyễn Đình Tê)