Menguraikan Driver ODBC dan OLEDB Microsoft SQL Server Baru
Beberapa dari Anda mungkin sudah tahu bahwa Microsoft mundur dari rencana penghentian OLEDB dan menyediakan driver OLEDB baru. Namun, itu bisa menjadi penggaruk kepala untuk mencari tahu apa yang harus Anda gunakan. Ketika kami menggunakan SQL Server Native Client, itu cukup mudah — Native Client memiliki OLEDB dan ODBC yang dikirimkan dalam satu file DLL, sehingga memudahkan instalasi. Anda hanya perlu memastikan bahwa Anda menggunakan versi Native Client yang benar.
Dengan SQL Server sekarang tersedia di Linux, tidak masuk akal lagi untuk mendistribusikan Native Client, karena Linux pada umumnya tidak mendukung OLEDB, yang terutama merupakan teknologi khusus Windows yang digunakan terutama oleh produk Microsoft. Untuk alasan itu, Microsoft tidak memilih untuk menggabungkan ODBC dan OLEDB menjadi satu DLL. Jika aplikasi Anda berisi kode VBA yang menggunakan DAO dan ADO, maka Anda perlu menginstal dua penyedia yang berbeda untuk mendapatkan fitur dan dukungan terbaru masing-masing untuk ODBC dan OLEDB.
Konvensi penamaan bisa sedikit membingungkan karena banyak orang akan secara longgar menyebut berbagai driver hanya sebagai "driver ODBC" atau "penyedia OLEDB". Jadi mari kita luruskan namanya. Kami akan mulai dengan mengidentifikasi versi yang tidak digunakan lagi dan kemudian melihat versi saat ini.
Versi Tidak Digunakan lagi
Secara default, semua versi Windows dilengkapi dengan dua pustaka klien akses data SQL Server yang telah diinstal sebelumnya:
Penyedia Microsoft OLE DB untuk SQL Server (juga dikenal sebagai SQLOLEDB)
Driver ODBC Microsoft SQL Server (juga dikenal sebagai SQLODBC)
Itu sangat penting untuk diperhatikan bahwa itu DANGGUNAKAN . Mereka menargetkan SQL Server 2000 dan tidak memiliki fitur baru yang diperkenalkan sejak itu. Windows akan tidak mengirimkan driver baru atau memperbaruinya melalui Pembaruan Windows-nya. Ke depannya, Anda, pengembang aplikasi, harus menyediakan driver versi yang sesuai untuk digunakan dengan aplikasi Anda, daripada mengandalkan yang disediakan oleh Windows. Jangan JANGAN gunakan itu dalam pengembangan Anda saat ini.
Versi Saat Ini
Setelah itu, mari kita lihat driver ODBC dan penyedia OLEDB yang benar yang mungkin ingin kita gunakan.
ODBC Driver 17 untuk SQL Server
Pada saat penulisan, ODBC Driver 17 untuk SQL Server adalah driver terbaru dan dapat diunduh di tautan yang disediakan. String koneksi terlihat seperti ini:
ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=myServer;DATABASE=myDatabase;
OLE DB Driver 18 untuk SQL Server
Pada saat penulisan, driver OLEDB 18 adalah driver terbaru. Meskipun versi satu lebih tinggi, set fitur setara dengan ODBC Driver 17 untuk SQL Server. String koneksi terlihat seperti ini:
Provider=MSOLEDBSQL;Server=myServer; Database=myDataBase;
32-bit atau 64-bit?
Satu pertanyaan umum yang muncul adalah apakah seseorang harus menginstal driver versi 64-bit atau 32-bit. Jawabannya sama terlepas dari versi mana yang sedang kita diskusikan dan selalu bergantung pada OS, bukan Office. Oleh karena itu, jika Anda menjalankan Access 32-bit pada Windows 64-bit, Anda ingin menginstal driver 64-bit. Ini akan mencakup komponen 32-bit yang diperlukan untuk menjalankan Akses 32-bit.
Dapatkah saya menggunakan SQL Server Native Client?
Secara resmi, SQL Server Native Client didukung hingga SQL Server 2012. Namun, Anda masih dapat menggunakannya untuk menyambung ke versi SQL Server yang lebih baru. Ada beberapa fitur yang hilang dari Native Client. Seiring berjalannya waktu, mereka akan menjadi semakin tidak sesuai dengan kebutuhan Anda, terutama dengan teknologi Azure. Meskipun Anda mungkin dapat terus menggunakannya untuk aplikasi yang sudah ada, sebaiknya Anda merencanakan pengembangan baru menggunakan driver ODBC dan OLEDB yang terpisah dan memigrasikan aplikasi yang ada jika memungkinkan. Anda harus bermigrasi saat ada kebutuhan untuk menggunakan teknologi baru yang hanya didukung oleh driver yang lebih baru tersebut (contohnya termasuk fitur Azure Authentication atau Always Encrypted).
Apakah saya perlu keduanya?
Hanya jika Anda menggunakan DAO dan ADO. Secara umum, semua formulir dan laporan serta kueri Access selalu menggunakan DAO. Satu-satunya waktu Anda menggunakan ADO adalah dalam kode VBA. Jadi jika Anda tidak menggunakan ADO, Anda hanya dapat menggunakan driver ODBC dan itu sudah cukup untuk kebutuhan Anda. Itu berarti ketika Anda biasanya menautkan tabel, Anda akan menggunakan kode yang mirip dengan berikut ini:
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Setel db =CurrentDb
Setel tdf =db.CreateTableDef
tdf.Name =“MyRemoteTable”
tdf.SourceTableName =“dbo.MyRemoteTable”
tdf.Connect =“ODBC;DRIVER=ODBC Driver 17 untuk SQL Server;SERVER=myServer;DATABASE=myDatabase;”
db.TableDefs.Append
Sintaks yang digunakan untuk tdf.Connect berfungsi untuk pass-through querydef atau bahkan untuk properti Connect metode DAO.Workspace.OpenDatabase.
Adalah sah untuk membuka koneksi ADO menggunakan ODBC tetapi sisi negatifnya adalah Anda akhirnya melewati lebih banyak lapisan karena Anda akan menggunakan penyedia OLEDB untuk ODBC untuk terhubung dengan driver ODBC 17 untuk SQL Server. Jika Anda masih lebih suka menggunakan ODBC, Anda dapat menggunakan kode berikut untuk menggunakan ODBC melalui OLEDB:
Dim con As ADODB.Connection
Setel con =New ADODB.Connection
con.ConnectionString =“DRIVER=ODBC Driver 17 untuk SQL Server;SERVER=myServer;DATABASE=myDatabase;”
con.Open
Lebih baik menghindari lapisan ekstra dan menggunakan OLEDB secara langsung. Anda dapat menggunakan kode ini untuk mendapatkan performa terbaik dengan kode ADO Anda:
Dim con As ADODB.Connection
Setel con =New ADODB.Connection
con.ConnectionString =“Provider=MSOLEDBSQL;Server=myServer; Database=myDataBase;”
con.Open
Jadi, satu-satunya saat Anda benar-benar membutuhkan dan menggunakan driver OLEDB baru untuk SQL Server adalah ketika Anda memiliki kode ADO di aplikasi Anda dan ingin menggunakan kemampuan penuh ADO, yang perlu diaktifkan oleh driver OLEDB yang mendasarinya.
Referensi Tambahan
Peta Jalan untuk Teknologi Akses Data Microsoft