(21-10-19, 04:47 PM)Anna Đã viết: Em dùng Access kết nối với SQL server thông qua ODBC và OLEDB, cảm giác bằng OLEDB nhanh hơn chút xíu.
Anh chị nào có thể giải thích rõ hơn cơ chế hoạt động của 2 phương pháp kết nối này không, nếu có thể có so sánh để em có cái nhìn tổng quan và lựa chọn phương pháp thích hợp hơn
Xin trich dẫn từ Ms.:...
Sử dụng trình điều khiển ODBC hoặc trình cung cấp OLE DB
Chuỗi kết nối đã có một khoảng thời gian dài. Bạn có thể xác định một chuỗi kết nối đã định dạng trong giao diện người dùng Access hoặc trong mã VBA. Chuỗi kết nối (có thể là ODBC hoặc DB OLE) truyền thông tin trực tiếp đến cơ sở dữ liệu, chẳng hạn như vị trí máy chủ, tên cơ sở dữ liệu, loại bảo mật và các tùy chọn hữu ích khác.
Ví dụ:
Mã PHP:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Trước tiên, đã có SQL Server Native Client (SNAC). Đây là một thư viện độc lập có công nghệ ODBC và OLEDB và vẫn dùng được cho SQL Server phiên bản 2005 đến 2012. Nhiều ứng dụng lỗi thừa sử dụng SNAC và nó vẫn được hỗ trợ để tương thích ngược nhưng chúng tôi không khuyên bạn sử dụng tính năng này để phát triển ứng dụng mới. Bạn nên sử dụng các phiên bản có thể tải xuống sau và riêng biệt của trình điều khiển ODBC.
Trình điều khiển ODBC
Kết nối Cơ sở Dữ liệu Mở (ODBC) là một giao thức mà bạn sử dụng để kết nối cơ sở dữ liệu Access với nguồn dữ liệu ngoài, chẳng hạn như Microsoft SQL Server. Thông thường, bạn sử dụng nguồn dữ liệu tệp (còn gọi là tệp DSN) để thêm một chuỗi kết nối, trong trường hợp này, từ khóa FILEDSN được dùng trên chuỗi kết nối hoặc được lưu trữ trong sổ đăng ký và dùng từ khóa DSN. Ngoài ra, bạn có thể sử dụng VBA để đặt các thuộc tính này bằng cách sử dụng chuỗi kết nối "không chứa DSN".
Trong những năm qua, trình điều khiển ODBC đã trải qua ba giai đoạn:
- Trước năm 2005, trình điều khiển ODBC đi kèm với các Cấu phần Truy nhập Dữ liệu của Windows (WDAC), với tên gọi ban đầu là các Cấu phần Truy nhập Dữ liệu của Microsoft (MDAC). Các cấu phần này vẫn đi kèm với Windows để đảm bảo tính tương thích ngược.
- Trình điều khiển ODBC đi kèm với SNAC dành cho SQL Server 2005 đến SQL Server 2012.
- Sau SQL Server 2012, trình điều khiển ODBC đã được tách riêng và có hỗ trợ các tính năng mới của SQL Server.
Khi phát triển ứng dụng mới, tránh sử dụng các trình điều khiển ODBC từ hai giai đoạn đầu tiên và sử dụng các trình điều khiển ODBC từ giai đoạn thứ ba.
Trình cung cấp OLE DB
Nối kết và Nhúng Đối tượng, Cơ sở Dữ liệu (ODBC) là một giao thức mới hơn mà bạn sử dụng để kết nối cơ sở dữ liệu Access với nguồn dữ liệu ngoài, chẳng hạn như Microsoft SQL Server. OLE DB không yêu cầu DSN và cũng cấp quyền truy nhập đầy đủ vào nguồn dữ liệu ODBC và trình điều khiển ODBC.
Thông thường, bạn sử dụng hôp thoại Thuộc tính liên kết dữ liệu để thêm một chuỗi kết nối OLE DB. Mặc dù không thể mở hộp thoại Thuộc tính liên kết dữ liệu từ Access, nhưng trong Windows Explorer, bạn có thể tạo một tệp trống .txt, thay đổi loại tệp thành .udl, rồi bấm đúp vào tệp. Sau khi tạo một chuỗi kết nối, thay đổi loại tệp lại thành .txt.
Trong những năm qua, trình cung cấp OLE DB đã trải qua ba giai đoạn:
- Trước năm 2005, trình cung cấp OLE DB đi kèm với các Cấu phần Truy nhập Dữ liệu của Windows (WDAC), với tên gọi ban đầu là các Cấu phần Truy nhập Dữ liệu của Microsoft (MDAC).
- Trình cung cấp OLE DB đi kèm với SQL Server 2005 đến SQL Server 2017. Trình cung cấp này đã ngừng phát triển trong năm 2011.
- Trong năm 2017, trình cung cấp SQL Server OLE DB được phát triển trở lại.
Phiên bản hiện đang được khuyên dùng để phát triển giải pháp mới là trình điều khiển OLE DB 18 cho SQL Server.
Cách tối ưu hóa hiệu suất với một chuỗi kết nối ODBC
Để tối ưu hóa hiệu suất, giảm thiểu lưu lượng mạng và giảm quyền truy nhập nhiều người dùng vào cơ sở dữ liệu SQL Server, hãy sử dụng càng ít chuỗi kết nối càng tốt bằng cách chia sẻ chuỗi kết nối qua nhiều tập dữ liệu. Mặc dù chỉ kiểm duyệt một chuỗi kết nối đến máy chủ, Ace sẽ hiểu và sử dụng các từ khóa sau: DSN, CƠ SỞ DỮ LIỆU, UID, PWD và TRÌNH ĐIỀU KHIỂN để trợ giúp giảm thiểu giao tiếp máy khách/máy chủ.
Lưu ý
Nếu bị mất kết nối ODBC đến một nguồn dữ liệu bên ngoài, Access sẽ tự động tìm cách kết nối lại với nguồn dữ liệu đó. Nếu lần thử lại thành công, bạn có thể tiếp tục làm việc. Nếu lần thử lại không thành công, bạn vẫn có thể làm việc với các đối tượng không phụ thuộc vào kết nối. Để kết nối lại, hãy đóng và mở lại Access.
Lời khuyên khi sử dụng cả ODBC và OLE DB
Tránh pha trộn các công nghệ chuỗi kết nối và truy nhập cơ sở dữ liệu. Sử dụng một chuỗi kết nối ODBC cho DAO. Sử dụng một chuỗi kết nối OLE DB cho DAO. Nếu ứng dụng của bạn chứa mã VBA sử dụng cả DAO và ADO, sau đó sử dụng trình điều khiển ODBC cho DAO và trình cung cấp OLE DB cho ADO. Cố gắng sử dụng những sự hỗ trợ và tính năng mới nhất cho cả ODBC và OLEDB.
ODBC sử dụng trình điều khiển thuật ngữ và OLE DB sử dụng trình cung cấp thuật ngữ. Các thuật ngữ mô tả cùng một loại cấu phần phần mềm nhưng không thể thay đổi cho nhau trong cú pháp chuỗi kết nối. Sử dụng giá trị chính xác đã lưu giữ.
Có hai cách chính để giao diện theo chương trình sang cơ sở dữ liệu SQL Server từ Access.
DAO
Đối tượng truy nhập dữ liệu (DAO) cung cấp giao diện trừu tượng cho cơ sở dữ liệu. Đối tượng truy nhập dữ liệu của Microsoft (DAO) là mô hình đối tượng lập trình gốc cho phép bạn truy nhập trung tâm Access và SQL Server để tạo, xóa, sửa đổi và lên danh sách đối tượng, bảng, trường, chỉ mục, mối quan hệ, truy vấn, thuộc tính và cơ sở dữ liệu bên ngoài.
ADO
Đối tượng dữ liệu ActiveX (ADO) cung cấp một mô hình lập trình cấp cao và có sẵn trong Access bằng một tham chiếu đến thư viện của bên thứ ba. Học cách sử dụng ADO rất đơn giản. ADO cho phép các ứng dụng máy khách truy nhập và thao tác dữ liệu từ nhiều nguồn khác nhau, bao gồm Access và SQL Server. Lợi ích chính của ADO là dễ sử dụng, tốc độ cao, chi phí quản lý bộ nhớ thấp, cũng như diện tích ổ đĩa nhỏ. ADO còn hỗ trợ những tính năng chính cho các ứng dụng thiết kế và trên nền web.
Bạn nên dùng cái nào?
Bạn có thể sử dụng DAO, ADO hoặc cả hai làm công nghệ giao diện cơ sở dữ liệu của bạn. DAO tiếp tục là công nghệ giao diện cơ sở dữ liệu mặc định trong Access.
Ví dụ: Tất cả các biểu mẫu, báo cáo và truy vấn Access sử dụng DAO. Nhưng khi di chuyển sang SQL Server, hãy cân nhắc đến việc sử dụng ADO để tăng tính hiệu quả cho giải pháp của bạn. Đây là các hướng dẫn chung để giúp bạn quyết định khi nào sử dụng DAO hoặc ADO.
Sử dụng DAO khi bạn muốn:- Tạo biểu mẫu đọc/viết, liên kết mà không cần sử dụng VBA.
- Các bảng cục bộ truy vấn.
- Tải dữ liệu xuống bảng tạm thời.
- Sử dụng truy vấn chuyển qua làm nguồn dữ liệu cho các báo cáo hoặc biểu mẫu trong chế độ chỉ đọc.
- Xác định và sử dụng đối tượng TableDef hoặc Querydef trong VBA.
Sử dụng ADO khi bạn muốn:- Tận dụng thêm các cách thức tối ưu hóa, chẳng hạn như thực hiện các thao tác không đồng bộ.
- Chạy các truy vấn chuyển qua DDL và DML.
- Truy nhập dữ liệu SQL Server trực tiếp thông qua recordsets trong VBA.
- Viết mã đơn giản hơn cho một số tác vụ nhất định, chẳng hạn như truyền các đối tượng lớn dưới dạng nhị phân.
- Gọi trực tiếp một thủ tục lưu sẵn bằng các tham số, sử dụng đối tượng lệnh trong VBA.