Access
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Access

Gỡ bỏ trình điều khiển Microsoft SQL Server ODBC và OLEDB mới

Gỡ bỏ trình điều khiển Microsoft SQL Server ODBC và OLEDB mới

Một số bạn có thể đã biết rằng Microsoft đã cản trở việc ngừng sử dụng OLEDB theo kế hoạch của họ và cung cấp một trình điều khiển OLEDB mới. Tuy nhiên, nó có thể là một khó khăn để tìm ra những gì bạn nên sử dụng. Khi chúng tôi sử dụng SQL Server Native Client, điều đó khá dễ dàng - Native Client có cả OLEDB và ODBC được vận chuyển trong một tệp DLL duy nhất, giúp cài đặt dễ dàng. Tất cả những gì bạn phải đảm bảo rằng bạn đang sử dụng đúng phiên bản Native Client.

Với SQL Server hiện đã có trên Linux, việc phân phối Native Client không còn hợp lý nữa vì Linux nói chung không hỗ trợ OLEDB, công nghệ này chủ yếu là công nghệ chỉ dành cho Windows được các sản phẩm của Microsoft sử dụng chủ yếu. Vì lý do đó, Microsoft đã không chọn kết hợp cả ODBC và OLEDB thành một DLL duy nhất. Nếu ứng dụng của bạn chứa mã VBA sử dụng cả DAO và ADO, thì bạn cần cài đặt hai các nhà cung cấp khác nhau để có được tính năng mới nhất và hỗ trợ cho cả ODBC và OLEDB tương ứng.

Quy ước đặt tên có thể hơi khó hiểu vì nhiều người sẽ đề cập đến các trình điều khiển khác nhau một cách lỏng lẻo chỉ đơn giản là “trình điều khiển ODBC” hoặc “nhà cung cấp OLEDB”. Vì vậy, chúng ta hãy đi thẳng tên. Chúng tôi sẽ bắt đầu với việc xác định các phiên bản không dùng nữa và sau đó xem xét các phiên bản hiện tại.

Các phiên bản không được dùng nữa

Theo mặc định, tất cả các phiên bản Windows đều được cài đặt sẵn hai thư viện máy khách truy cập dữ liệu SQL Server:

Nhà cung cấp Microsoft OLE DB cho SQL Server (còn được gọi là SQLOLEDB)
Trình điều khiển Microsoft SQL Server ODBC (còn được gọi là SQLODBC)

rất điều quan trọng cần lưu ý là những điều đó KHÔNG ĐƯỢC SỬ DỤNG . Những người này đang nhắm mục tiêu SQL Server 2000 và thiếu các tính năng mới được giới thiệu kể từ đó. Windows sẽ không gửi bất kỳ trình điều khiển mới nào hoặc cập nhật chúng thông qua Windows Update của nó. Về sau, bạn, nhà phát triển ứng dụng, phải cung cấp trình điều khiển của phiên bản thích hợp để sử dụng với ứng dụng của bạn, thay vì dựa vào những trình điều khiển do Windows cung cấp. KHÔNG sử dụng chúng trong quá trình phát triển hiện tại của bạn.

Phiên bản hiện tại

Không còn cách nào khác, hãy xem trình điều khiển ODBC và nhà cung cấp OLEDB chính xác mà chúng tôi có thể muốn sử dụng.

Trình điều khiển ODBC 17 cho SQL Server

Tại thời điểm viết bài, Trình điều khiển ODBC 17 cho SQL Server là trình điều khiển mới nhất và có thể được tải xuống trong liên kết được cung cấp. Chuỗi kết nối trông giống như sau:

ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=myServer;DATABASE=myDatabase;

OLE DB Driver 18 cho SQL Server

Tại thời điểm viết bài, trình điều khiển OLEDB 18 là trình điều khiển mới nhất. Mặc dù phiên bản cao hơn một, bộ tính năng tương đương với Trình điều khiển ODBC 17 cho SQL Server. Chuỗi kết nối trông giống như sau:

Provider=MSOLEDBSQL;Server=myServer; Database=myDataBase;

32 bit hay 64 bit?

Một câu hỏi phổ biến được đặt ra là liệu người ta nên cài đặt phiên bản trình điều khiển 64 bit hay 32 bit. Câu trả lời là giống nhau cho dù chúng ta đang thảo luận về phiên bản nào và nó luôn phụ thuộc vào HĐH chứ không phải Office. Do đó, nếu bạn đang chạy Access 32-bit trên Windows 64-bit, bạn sẽ muốn cài đặt trình điều khiển 64-bit. Điều này sẽ bao gồm các thành phần 32-bit cần thiết để Truy cập 32-bit chạy với.

Tôi có thể sử dụng SQL Server Native Client không?

Chính thức, SQL Server Native Client được hỗ trợ lên đến SQL Server 2012. Tuy nhiên, bạn vẫn có thể sử dụng nó để kết nối với các phiên bản SQL Server mới hơn. Có một số tính năng bị thiếu trong Native Client. Theo thời gian, chúng sẽ ngày càng không phù hợp với nhu cầu của bạn, đặc biệt là với công nghệ Azure. Mặc dù bạn có thể tiếp tục sử dụng nó cho các ứng dụng hiện có của mình, nhưng chúng tôi khuyến khích bạn lập kế hoạch phát triển mới bằng cách sử dụng trình điều khiển ODBC và OLEDB riêng biệt và di chuyển các ứng dụng hiện có của bạn khi có thể. Bạn phải di chuyển khi có nhu cầu sử dụng các công nghệ mới chỉ được hỗ trợ bởi các trình điều khiển mới hơn đó (ví dụ bao gồm tính năng Xác thực Azure hoặc Luôn mã hóa).

Tôi có cần cả hai không?

Chỉ khi bạn sử dụng cả DAO và ADO. Nói chung, tất cả các biểu mẫu, báo cáo và truy vấn Access luôn sử dụng DAO. Lần duy nhất bạn có thể sử dụng ADO là trong mã VBA. Vì vậy, nếu bạn không sử dụng ADO, bạn chỉ có thể sử dụng trình điều khiển ODBC và điều đó là đủ cho nhu cầu của bạn. Điều đó có nghĩa là khi bạn thường liên kết các bảng của mình, bạn sẽ sử dụng mã tương tự như sau:

Dim db As DAO.Database
Dim tdf As DAO.TableDef

Đặt db =CurrentDb
Đặt tdf =db.CreateTableDef

tdf.Name =“MyRemoteTable”
tdf.SourceTableName =“dbo.MyRemoteTable”
tdf.Connect =“ODBC; DRIVER =ODBC Driver 17 cho SQL Server; SERVER =myServer; DATABASE =myDatabase;”

db.TableDefs.Append

Cú pháp được sử dụng cho tdf.Connect hoạt động cho truy vấn chuyển qua hoặc thậm chí cho thuộc tính Connect của phương thức DAO.Workspace.OpenDatabase.

Việc mở kết nối ADO bằng ODBC là hợp pháp nhưng nhược điểm là bạn sẽ phải trải qua nhiều lớp hơn vì bạn đang sử dụng nhà cung cấp OLEDB cho ODBC để kết nối với trình điều khiển ODBC 17 cho SQL Server. Nếu vẫn muốn sử dụng ODBC, bạn có thể sử dụng mã sau để sử dụng ODBC qua OLEDB:

Dim con As ADODB.Connection

Đặt con =New ADODB.Connection
con.ConnectionString =“DRIVER =ODBC Driver 17 cho SQL Server; SERVER =myServer; DATABASE =myDatabase;”
con.Open

Tốt hơn là nên tránh lớp thừa và sử dụng trực tiếp OLEDB. Bạn có thể sử dụng mã này để có được hiệu suất tốt nhất với mã ADO của mình:

Dim con As ADODB.Connection

Đặt con =ADODB.Connection mới
con.ConnectionString =“Nhà cung cấp =MSOLEDBSQL; Máy chủ =myServer; Cơ sở dữ liệu =myDataBase; ”
con.Open

Do đó, thời điểm duy nhất bạn thực sự cần và sử dụng trình điều khiển OLEDB mới cho SQL Server là khi bạn có mã ADO trong ứng dụng của mình và muốn sử dụng toàn bộ khả năng của ADO, cần được kích hoạt bởi trình điều khiển OLEDB bên dưới.

Tham khảo bổ sung

Lộ trình cho Công nghệ Truy cập Dữ liệu của Microsoft


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nghe Tập 2 của Microsoft Access Podcast

  2. Hướng dẫn điều khiển ListView-02

  3. Mẹo và Thủ thuật Microsoft Access Phần 2 - Biểu mẫu

  4. TRANSACTION_MUTEX và Quyền truy cập giao dịch nhiều phiên

  5. Làm thế nào để Ngăn chặn Tham nhũng Cơ sở dữ liệu trong Microsoft Access