Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Applies to:SQL Server
SQL Server Express LocalDB örneği API'sinde ayrı bir üst bilgi dosyası yoktur; LocalDB işlev imzaları ve hata kodları, SQL Server için Microsoft OLE DB Sürücüsü üst bilgi dosyasında (msoledbsql.h ) tanımlanır. LocalDB örneği API'sini msoledbsql.h kullanmak için üst bilgi dosyasını projenize eklemeniz gerekir. Bu makalede artık SQL Server Yerel İstemci üst bilgi dosyasına ( ) başvurulmamektedirsqlncli.h.
LocalDB versioning
LocalDB yüklemesi, ana SQL Server sürümü başına tek bir ikili dosya kümesi kullanır. Bu LocalDB sürümleri bağımsız olarak korunur ve düzeltme eki eklenir. Bu, kullanıcının hangi LocalDB temel sürümünü (yani ana SQL Server sürümünü) kullandığını belirtmesi gereken anlamına gelir. Sürüm, .NET Framework System.Version sınıfı tarafından tanımlanan standart sürüm biçiminde belirtilir:
<major>.<minor>[.<build>[.<revision>]]
Sürüm dizesindeki (<major> ve <minor>) ilk iki sayı zorunlu olur. Sürüm dizesindeki (<build> ve <revision>) son iki sayı isteğe bağlıdır ve kullanıcı bunları dışarıda bırakırsa varsayılan olarak sıfır olur. Başka bir deyişle, kullanıcı yalnızca 12.2 LocalDB sürüm numarası olarak belirtiyorsa, kullanıcı tarafından belirtilmiş 12.2.0.0gibi değerlendirilir.
LocalDB yüklemesinin sürümü SQL Server örnek kayıt defteri anahtarının altındaki MSSQLServer\CurrentVersion kayıt defteri anahtarında tanımlanır, örneğin:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13E.LOCALDB\ MSSQLServer\CurrentVersion: "CurrentVersion"="12.0.2531.0"
Aynı iş istasyonundaki birden çok LocalDB sürümü yan yana desteklenir. Ancak kullanıcı kodu, LocalDB örneklerine bağlanmak için her zaman yerel bilgisayardaki en son kullanılabilir SQLUserInstance DLL'yi kullanır.
SQLUserInstance DLL'sini bulma
DLL'yi SQLUserInstance bulmak için istemci sağlayıcısı aşağıdaki kayıt defteri anahtarını kullanır:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions]
Bu anahtarın altında, bilgisayarda yüklü her LocalDB sürümü için bir anahtar listesi bulunur. Bu anahtarların her biri, biçiminde <major-version>LocalDB sürüm numarasıyla adlandırılır.
<minor-version> (örneğin, SQL Server 2014 (12.x) anahtarı 13.0 olarak adlandırılır). Her sürüm anahtarının altında, bu sürümle yüklenen dosyanın tam yolunu SQLUserInstance.dll tanımlayan bir InstanceAPIPath ad-değer çifti vardır. Aşağıdaki örnekte, LocalDB 11.0 ve 13.0 sürümlerinin yüklü olduğu bir bilgisayarın kayıt defteri girdileri gösterilmektedir:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\11.0]
"InstanceAPIPath"="C:\\Program Files\\Microsoft SQL Server\\110\\LocalDB\\Binn\\SqlUserInstance.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\13.0]
"InstanceAPIPath"="C:\\Program Files\\Microsoft SQL Server\\130\\LocalDB\\Binn\\SqlUserInstance.dll"
İstemci sağlayıcısının tüm yüklü sürümler arasında en son sürümü bulması ve ilişkili InstanceAPIPath değerden DLL dosyasını yüklemesi SQLUserInstance gerekir.
64 bit Windows üzerinde WOW64 modu
LocalDB'nin 64 bit yüklemelerinde, Windows-32-on-Windows-64 (WOW64) modunda çalışan 32 bit uygulamaların LocalDB kullanmasına izin vermek için fazladan bir kayıt defteri anahtarı kümesi vardır. Özellikle, 64 bit Windows'ta LocalDB MSI aşağıdaki kayıt defteri anahtarlarını oluşturur:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wow6432Node\Microsoft SQL Server Local DB\Installed Versions\13.0]
"InstanceAPIPath"="C:\\Program Files (x86)\\Microsoft SQL Server\\130\\LocalDB\\Binn\\SqlUserInstance.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wow6432Node\Microsoft SQL Server Local DB\Installed Versions\13.0]
"InstanceAPIPath"="C:\\Program Files (x86)\\Microsoft SQL Server\\130\\LocalDB\\Binn\\SqlUserInstance.dll"
Anahtarı okuyan Installed Versions 64 bit programlar DLL'nin SQLUserInstance 64 bit sürümlerine işaret eden değerleri görürken, 32 bit programlar (WOW64 modunda 64 bit Windows üzerinde çalışan) otomatik olarak kovanın Wow6432Node altında bulunan bir Installed Versions anahtara yönlendirilir. Bu anahtar, DLL'nin 32 bit sürümlerini SQLUserInstance gösteren değerler içerir.
Use LOCALDB_DEFINE_PROXY_FUNCTIONS
LocalDB örnek API'si, DLL'nin bulunmasını ve yüklenmesini SqlUserInstance otomatik hale getiren adlı LOCALDB_DEFINE_PROXY_FUNCTIONS bir sabit tanımlar.
Bu sabit tarafından etkinleştirilen kodun bölümü, LocalDB API'lerinin her biri için proxy'lerin bir uygulamasını sağlar. Ara sunucu uygulamaları, en son yüklenen SqlUserInstance DLL'deki giriş noktalarına bağlanmak ve ardından istekleri iletmek için ortak bir işlev kullanır.
Proxy işlevleri yalnızca msoledbsql.h dosyasını eklemeden önce kullanıcı kodunda sabit LOCALDB_DEFINE_PROXY_FUNCTIONS tanımlanmışsa etkinleştirilir. Sabit, tüm API giriş noktaları için dış işlev adlarını tanımladığından yalnızca bir kaynak modülde (.cpp dosyası) tanımlanmalıdır. LocalDB API'lerinin her biri için proxy'lerin bir uygulamasını sağlar.
Aşağıdaki kod örneği, yerel C++ kodundan makronun nasıl kullanılacağını gösterir:
// Define the LOCALDB_DEFINE_PROXY_FUNCTIONS constant to enable the LocalDB proxy functions
// The #define has to take place BEFORE the API header file (msoledbsql.h) is included
#define LOCALDB_DEFINE_PROXY_FUNCTIONS
#include <msoledbsql.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)))
{
...
}
...