Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tidak ada file header terpisah untuk API instans SQL Server Express LocalDB; tanda tangan fungsi LocalDB dan kode kesalahan ditentukan dalam file header Klien Asli SQL Server (sqlncli.h). Untuk menggunakan API instans LocalDB, Anda harus menyertakan file header sqlncli.h dalam proyek Anda.
Penerapan Versi LocalDB
Penginstalan LocalDB menggunakan satu set biner per versi SQL Server utama. Versi LocalDB ini dipertahankan dan di-patch secara independen. Ini berarti bahwa pengguna harus menentukan rilis garis besar LocalDB mana (yaitu, versi SQL Server utama) yang akan digunakannya. Versi ditentukan dalam format versi standar yang ditentukan oleh kelas .NET Framework System.Version :
major.minor[.build[.revision]]
Dua angka pertama dalam string versi (utama dan minor) adalah wajib. Dua angka terakhir dalam string versi (build dan revisi) bersifat opsional dan default ke nol jika pengguna membiarkannya keluar. Ini berarti bahwa jika pengguna hanya menentukan "12.2" sebagai nomor versi LocalDB, itu akan diperlakukan seolah-olah pengguna menentukan "12.2.0.0".
Versi untuk penginstalan LocalDB ditentukan dalam kunci registri MSSQLServer\CurrentVersion di bawah kunci registri instans SQL Server, misalnya:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12E.LOCALDB\ MSSQLServer\CurrentVersion: "CurrentVersion"="12.0.2531.0"
Beberapa versi LocalDB pada stasiun kerja yang sama didukung secara berdampingan. Namun, kode pengguna selalu menggunakan DLL SQLUserInstance terbaru yang tersedia di komputer lokal untuk terhubung ke instans LocalDB.
Menemukan DLL SQLUserInstance
Untuk menemukan DLL SQLUserInstance , penyedia klien menggunakan kunci registri berikut:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions]
Di bawah kunci ini ada daftar kunci, satu untuk setiap versi LocalDB yang diinstal pada komputer. Masing-masing kunci ini dinamai dengan nomor versi LocalDB dalam format <versi> mayor.<versi> minor (misalnya, kunci untuk SQL Server 2014 diberi nama 12.0). Di bawah setiap kunci versi ada InstanceAPIPath pasangan nama-nilai yang menentukan jalur lengkap ke file SQLUserInstance.dll yang diinstal dengan versi tersebut. Contoh berikut menunjukkan entri registri untuk komputer yang memiliki LocalDB versi 11.0 dan 12.0 terinstal:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\12.0]
"InstanceAPIPath"="C:\\Program Files\\Microsoft SQL Server\\120\\LocalDB\\Binn\\SqlUserInstance.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\12.0]
"InstanceAPIPath"="C:\\Program Files\\Microsoft SQL Server\\120\\LocalDB\\Binn\\SqlUserInstance.dll"]
Penyedia klien harus menemukan versi terbaru di antara semua versi yang diinstal dan memuat file DLL SQLUserInstance dari nilai terkait InstanceAPIPath .
Mode WOW64 pada Windows 64-bit
Penginstalan 64-bit LocalDB akan memiliki serangkaian kunci registri tambahan untuk memungkinkan aplikasi 32-bit yang berjalan dalam mode Windows-32-on-Windows-64 (WOW64) untuk menggunakan LocalDB. Secara khusus, pada Windows 64-bit, MSI LocalDB akan membuat kunci registri berikut:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wow6432Node\Microsoft SQL Server Local DB\Installed Versions\12.0]
"InstanceAPIPath"="C:\\Program Files (x86)\\Microsoft SQL Server\\120\\LocalDB\\Binn\\SqlUserInstance.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wow6432Node\Microsoft SQL Server Local DB\Installed Versions\12.0]
"InstanceAPIPath"="C:\\Program Files (x86)\\Microsoft SQL Server\\120\\LocalDB\\Binn\\SqlUserInstance.dll"]
Program 64-bit yang membaca Installed Versions kunci akan melihat nilai yang menunjuk ke versi 64-bit dari DLL SQLUserInstance , sementara program 32-bit (berjalan pada Windows 64-bit dalam mode WOW64) akan secara otomatis dialihkan ke kunci yang Installed Versions terletak di bawah Wow6432Node sarang. Kunci ini berisi nilai yang menunjuk ke versi 32-bit dari DLL SQLUserInstance .
Menggunakan LOCALDB_DEFINE_PROXY_FUNCTIONS
API instans LocalDB mendefinisikan konstanta bernama LOCALDB_DEFINE_PROXY_FUNCTIONS yang mengotomatiskan penemuan dan pemuatan DLL SqlUserInstance .
Bagian kode yang diaktifkan oleh konstanta ini menyediakan implementasi proksi untuk setiap API LocalDB. Implementasi proksi menggunakan fungsi umum untuk mengikat titik masuk di DLL SqlUserInstance terbaru yang diinstal, lalu meneruskan permintaan.
Fungsi proksi diaktifkan hanya jika konstanta LOCALDB_DEFINE_PROXY_FUNCTIONS ditentukan dalam kode pengguna sebelum menyertakan file sqlncli.h. Konstanta harus ditentukan hanya dalam satu modul sumber (file .cpp) karena mendefinisikan nama fungsi eksternal untuk semua titik entri API. Ini menyediakan implementasi proksi untuk setiap API LocalDB.
Contoh kode berikut menunjukkan cara menggunakan makro dari kode C++ asli:
// Define the LOCALDB_DEFINE_PROXY_FUNCTIONS constant to enable the LocalDB proxy functions
// The #define has to take place BEFORE the API header file (sqlncli.h) is included
#define LOCALDB_DEFINE_PROXY_FUNCTIONS
#include <sqlncli.h>
...
HRESULT hr = S_OK;
// Create LocalDB instance by calling the create API proxy function included by macro
if (FAILED(hr = LocalDBCreateInstance( L"12.0", L"name", 0)))
{
...
}
...