Các Mô Hình Kết Nối Ứng Dụng Đến Sql Server


Bước 2: Trong mục Login name nhấp chọn nút để tìm tài khoản trong danh sách tài khoản của SQL Server.

Hình 7 22 Tìm tài khoản người dùng Bước 3 Chọn nút Browse Chọn tài 2

Hình 7.22. Tìm tài khoản người dùng

Bước 3: Chọn nút Browse/Chọn tài khoản/Chọn OK.

khoản Hình 7 23 Chọn tên người dùng Bước 4 Trong mục Default Schema nhấp 3


khoản.

Hình 7.23. Chọn tên người dùng

Bước 4: Trong mục Default Schema, nhấp chọn nút để tìm giản đồ cho tài

Có thể bạn quan tâm!

Xem toàn bộ 323 trang tài liệu này.


Hình 7 24 Tìm loại giản đồ Bước 5 Chọn nút Browse Chọn giản đồ Chọn OK 5

Hình 7.24. Tìm loại giản đồ

Bước 5: Chọn nút Browse/Chọn giản đồ/Chọn OK.


Hình 7 25 Chọn loại giản đồ Bước 6 Đánh dấu chọn vào các tùy chọn trong 6

Hình 7.25. Chọn loại giản đồ

Bước 6: Đánh dấu chọn vào các tùy chọn trong phần Database Role membership để gắn quyền thao tác cơ sở dữ liệu cho người dùng/ Chọn OK.

Hình 7 26 Gán quyền thao tác dữ liệu Bước 7 Chọn trang Status chọn Grant và 7

Hình 7.26. Gán quyền thao tác dữ liệu

Bước 7: Chọn trang Status/chọn Grant và Enabled/Chọn OK.


Hình 7 27 Chọn chế độ Login Chương 8 SQL SERVER VÀ LẬP TRÌNH ỨNG DỤNG 8 1 Các 8

Hình 7.27. Chọn chế độ Login


Chương 8

SQL SERVER VÀ LẬP TRÌNH ỨNG DỤNG


8.1. Các mô hình kết nối ứng dụng đến SQL Server

8.1.1. Mô hình ADO

ADO là phương thức truy xuất dữ liệu cũ của Microsoft, và nó đã trở thành chuẩn cho các môi trường Office, Web, và Visual Basic trước .NET. Sau đây là các sản phẩm phát triển của ADO:

- Microsoft Office 200x

- Visual Studio 6.0 (bao gồm tất cả các ngôn ngữ trong đó)

- SQL Server 7.0, 2000

Data Access Objects (DAO), là chuẩn trước ADO, được sử dụng trong Office và Visual Basic, nhưng nó không được thiết kế để sử dụng trong các môi trường Web như Visual InterDev và các dữ liệu servers khác. Do đó, ADO cho đến bây giờ đang là chuẩn để phát triển các ứng dụng.

Các mô hình đối tượng ADO (ADO Object Models)

Đây là các mô hình đối tượng, mang ý nghĩa số nhiều. Không như DAO chỉ bao gồm một mô hình đối tượng (one object model), ADO được phân chia thành các mô hình đối tượng (Object models). Các mô hình đối tượng của ADO làm việc với nhau đưa ra các objects và các collections cần thiết để ta làm việc với dữ liệu. Trong ADO có cặp mô hình đối tượng:

- ActiveX Data Objects 2.7 (ADODB) cho phép ta tạo và làm việc với recordsets cũng như thực hiện quản lý lỗi.

- ADO Extensions 2.7 for DDL and Security (ADOX) là ngôn ngữ định nghĩa dữ liệu, cho phép ta làm việc và sửa đổi lược đồ cơ sở dữ liệu (Database schema) và bảo mật các đối tượng. Tuy nhiên, các đối tượng này sẽ được sử dụng kết hợp với nhau. Chẳng hạn, khi muốn sửa đổi cấu trúc một bảng thì ta cần thư viện ADOX, nhưng để nó hoạt động thì ta cần ADODB. Các ứng dụng thường làm việc với các bản ghi dữ liệu.

Mô hình đối tượng ActiveX Data Objects - ADO bao gồm:

- Đối tượng Connection: Là nơi mà tất cả các thao tác làm việc của ta với ADO được bắt đầu. Tất cả các Objects và Collections đều được đề cập sau đối tượng Connection.

- Đối tượng Errors collection/Error: Giống như DAO Errors Collection và Error Object, nó cho phép phát triển để quản lý lỗi.


- Đối tượng Command: Cho phép chạy truy vấn trên một cơ sở dữ liệu và trả lại các bản ghi trên đối tượng Recordset, thao tác với cấu trúc cơ sở dữ liệu, và thực hiện một thao tác dữ liệu. Một tập hợp các tham số sẽ được sử dụng với đối tượng Command.

- Đối tượng Recordset: Dùng để mở các đối tượng Recordset để chỉ đọc hoặc tạo bảng động. Mỗi đối tượng Recordset có một tập các trường (Field).

- Đối tượng Stream: Cho phép đọc cây đặc biệt - cấu trúc phân cấp (special tree-tructured hierarchies), như e-mail messages hoặc các file hệ thống.

Hình 8 1 Mô hình ADO 8 1 2 Mô hình ADO NET ADO NET được thiết kế để cung cấp 9

Hình 8.1. Mô hình ADO

8.1.2. Mô hình ADO.NET

ADO.NET được thiết kế để cung cấp kiến trúc rời rạc (Disconnected Architecture). Có nghĩa là các ứng dụng kết nối đến cơ sở dữ liệu, truy cập dữ liệu và lưu trữ trong bộ nhớ. Sau đó hủy bỏ kết nối với cơ sở dữ liệu và sử dụng bộ nhớ sao chép của dữ liệu đó. Nếu như cơ sở dữ liệu cần phải được cập nhật với các thay đổi trên bộ nhớ sao chép, một kết nối mới được hình thành và cơ sở dữ liệu được cập nhật. Bộ nhớ chính lưu trữ dữ liệu là DataSet, nơi mà chứa các bộ nhớ lưu trữ dữ liệu khác, như là: Các đối tượng DataTable; ta có thể lọc và sắp xếp dữ liệu trên DataSet bằng việc sử dụng các đối tượng DataView.

Việc sử dụng kiến trúc Disconnected Architecture cung cấp rất nhiều lợi ích, trong đó, quan trọng nhất là cho phép ứng dụng trở lên scale up. Nghĩa là cơ sở dữ liệu sẽ thực thi tốt như hỗ trợ hàng trăm người dùng. Điều đó có thể bởi vì ứng dụng kết nối đến cơ sở dữ liệu chỉ đủ để truy cập hoặc cập nhật dữ liệu, bằng cách đó giải phóng các kết nối và cơ sở dữ liệu sẵn có cho các thể hiện khác của ứng dụng hoặc các ứng dụng khác sử dụng cùng cơ sở dữ liệu.


Hình 8 2 Mô hình ADO NET 1 Các đối tượng trong ADO NET Các đối tượng được 10

Hình 8.2. Mô hình ADO.NET

1) Các đối tượng trong ADO.NET

Các đối tượng được dùng để thao tác dữ liệu

- DataSet: Đối tượng này được sử dụng cùng với các điều khiển dữ liệu khác, lưu trữ các kết quả được trả về bởi các đối tượng Commands và Data Adapters. Không như Recordset của ADO và DAO, DatSet thực sự mang lại một View phân cấp của dữ liệu. Bằng việc sử dụng các thuộc tính và các collections trong đối tượng DataSet, ta có thể nhận được toàn bộ các quan hệ (Relations), các Tables riêng biệt, Rows, và Columns.

- DataTable: Cho phép thao tác dữ liệu trong một bảng riêng biệt. Data Table tương tự như đối tượng recordset trong ADO.

- DataView: Dùng để lọc và sắp xếp dữ liệu, duy trì các Views khác nhau của dữ liệu. Mỗi Data Table có một View mặc định, nó là nơi khởi động Data View mà có thể được sửa đổi và lưu trữ trong DataView khác.

- DataRow: Cho phép thao tác các dòng của dữ liệu trong Data Tables. Nó có thể được xét như một nơi lưu trữ của dữ liệu mà ta có thể thực hiện các thao tác thêm, sửa, xóa các bản ghi. Ta có thể quay trở lại Recordset, nơi mà ta sẽ chạy các câu lệnh SQL để cập nhật dữ liệu về Server.

- DataColumn: Dùng để nhận các thông tin tại các cột bằng việc sử dụng đối tượng DataColumn. Ta có thể lấy thông tin lược đồ như là dữ liệu bằng việc sử dụng đối tượng này. Ví dụ nếu ta muốn tạo một List box của tên các trường, ta có thể lập thông qua tập DataColumn của các dòng dữ liệu và tìm tất cả các tên trường.

- PrimaryKey: Cho phép ta chỉ định khóa chính cho bảng dữ liệu.

2) Các lớp trong ADO.NET


.NET cũng cung cấp các lớp, được gọi Data providers, sử dụng tên miền (namespaces) để làm việc với các đối tượng ADO.NET và cung cấp các truy xuất với dữ liệu. Lòi của các lớp ADO.NET tồn tại trong Namespace System.Data. Namespace này chứa một vài Namespaces con. Phần quan trọng nhất của chúng là các tên miền System.Data.SqlClient và System.Data.OleDb. Chúng cung cấp các classes sử dụng cho việc truy cập SQL Server Databases và OLE (Object Linking and Embedding) DB- compliant databases (phục hồi dữ liệu). Các lớp của OleDb và SqlClient được mô tả trong hình dưới đây:

Hình 8 3 Các lớp OleDb và SqlClient Các đối tượng thường được sử dụng để 11

Hình 8.3. Các lớp OleDb và SqlClient

Các đối tượng thường được sử dụng để thao tác với dữ liệu.

- Command: Tương tự như đối tượng ADO Command, cho phép ta thực hiện các Stored Procedures trong mã nguồn. Khác với phiên bản ADO, ta có thể tạo đối tượng DataReader bằng việc sử dụng phương thức ExecuteReader.

- Connection: Dùng để mở kết nối tới Server và Cơ sở dữ liệu mà ta muốn làm việc. Khác với đối tượng ADO Connection, cách thức kết nối phụ thuộc vào đối tượng mà ta muốn làm việc, như là đối tượng DataReader hay DataSet.

- DataAdapter: Cho phép tạo các câu lệnh SQL và điền dữ liệu vào Datasets. Nó cũng cho phép tạo các Queries cần thiết, như là Insert, Update, và Delete.

- DataReader: Cho phép tạo một lớp dạng Read-only, Forward-only của dữ liệu mà cho phép chúng đặt trên các điều khiển, như ListBox và ComboBox.

- Parameter: Cho phép chỉ định các tham số mà các đối tượng DataAdapter có thể chỉ định và sử dụng.

Ngoài ra, hai tên miền con khác cũng tồn tại trong tên miền System.Data. Đó là: System.Data.OracleClient và System.Data.Odbc.


Trong đó, Namespace System.Data.OracleClient được sử dụng dành cho các CSDL Oracle. Các lớp SqlClient cung cấp các kết quả tốt nhất khi làm việc với các SQL Server Databases; OracleClient cung cấp thực thi tối ưu khi truy cập vào Oracle Databases. Namespace System.Data.Odbc cung cấp truy cập tới ODBC (Open Database Connectivity) nguồn cơ sở dữ liệu cũ mà không được hỗ trợ bởi công nghệ OleDb. Như vậy, các tên miền System.Data.SqlClient, System.Data.OleDb, System.Data.OracleClient, và System.Data.Odbc được biết như là Data Providers trong ADO.NET.

3) Các lớp SqlClient trong mô hình ADO.NET

Danh sách sau chứa các lớp ADO.NET mà chúng sẽ được sử dụng trong quá trình xây dựng ứng dụng sử dụng SQL Server Databases:

- SqlConnection

- SqlCommand

- SqlDataAdapter

- SqlParameter

- SqlDataReader

Đây là các SqlClient cụ thể, trừ Namespace OleDb có rất nhiều close tương đương. Mỗi khi ta muốn sử dụng lớp classes này, ta phải thêm một tham chiếu tới tên miền System.Data. Để đơn giản, ta có thể sử dụng từ khóa Imports, và lúc đó ta không cần phải điền đầy đủ các thành phần tên miền của SqlClient trong code, như đoạn mã sau: Imports System.Data.SqlClient. Nếu ta muốn sử dụng lòi của các lớp ADO.NET, như là DataSet và DataView không cần gò đầy đủ tên miền, ta cần phải nhập tên miền System.Data, như đoạn code tiếp theo: Imports System.Data. Ta nên quen thuộc với việc nhập các tên miền khác nhau trong các dự án

Các lớp chính tồn tại trong Namespace System.Data.SqlClient:

a) Lớp SqlConnection:

Cung cấp một kết nối tới SQL Server Database. Khi xây dựng một đối tượng SqlConnection, ta có thể chọn để chỉ định một chuỗi kết nối (Connection Strings) như một tham số. Chuỗi kết nối chứa tất cả các thông tin cần thiết để mở một kết nối tới cơ sở dữ liệu.

Nếu ta không chỉ định chuỗi kết nối trong khi xây dựng, ta có thể thiết lập nó bằng việc sử dụng thuộc tính SqlConnection.ConnectionString.

- Cú pháp:

Imports System.Data.SqlClient

Dim <String_Connection_Name> as String= “Server=<Server_Name>;

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 16/07/2022