Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Applies to:SQL Server
Pro rozhraní API instance SQL Serveru Express LocalDB neexistuje žádný samostatný soubor hlaviček; Podpisy funkcí LocalDB a kódy chyb jsou definovány v souborumsoledbsql.h hlaviček serveru Microsoft OLE DB (). Pokud chcete použít rozhraní API instance LocalDB, musíte do projektu zahrnout msoledbsql.h soubor hlaviček. Tento článek již odkazuje na soubor hlavičky nativního klienta SQL Serveru (sqlncli.h).
LocalDB versioning
Instalace LocalDB používá jednu sadu binárních souborů na hlavní verzi SQL Serveru. Tyto verze LocalDB se udržují a opravují nezávisle. To znamená, že uživatel musí určit, jakou základní verzi LocalDB (tj. hlavní verzi SQL Serveru), kterou používá. Verze je určena ve standardním formátu verze definovaném třídou rozhraní .NET Framework System.Version :
<major>.<minor>[.<build>[.<revision>]]
První dvě čísla v řetězci verze (<major> a <minor>) jsou povinná. Poslední dvě čísla v řetězci verze (<build> a <revision>) jsou volitelná a výchozí hodnota nula, pokud je uživatel vynechá. To znamená, že pokud uživatel určuje pouze 12.2 jako číslo verze LocalDB, považuje se za zadaného 12.2.0.0uživatele .
Verze instalace LocalDB je definována v klíči registru MSSQLServer\CurrentVersion pod klíčem registru instance SQL Serveru, například:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13E.LOCALDB\ MSSQLServer\CurrentVersion: "CurrentVersion"="12.0.2531.0"
Vedle sebe se podporuje více verzí LocalDB na stejné pracovní stanici. Uživatelský kód však vždy používá nejnovější dostupnou SQLUserInstance knihovnu DLL na místním počítači pro připojení k instancím LocalDB.
Vyhledejte knihovnu DLL SQLUserInstance.
K vyhledání SQLUserInstance knihovny DLL používá zprostředkovatel klienta následující klíč registru:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions]
Pod tímto klíčem je seznam klíčů, jeden pro každou verzi LocalDB nainstalovaný v počítači. Každý z těchto klíčů má název s číslem verze LocalDB ve formátu <major-version>.
<minor-version> (například klíč pro SQL Server 2014 (12.x) má název 13.0). Pod každým klíčem verze je InstanceAPIPath pár název-hodnota, který definuje úplnou cestu k SQLUserInstance.dll souboru nainstalovanému s touto verzí. Následující příklad ukazuje položky registru pro počítač s nainstalovanou verzí LocalDB 11.0 a 13.0:
[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"
Zprostředkovatel klienta musí najít nejnovější verzi ze všech nainstalovaných verzí a načíst SQLUserInstance soubor DLL z přidružené InstanceAPIPath hodnoty.
Režim WOW64 v 64bitovém systému Windows
64bitové instalace LocalDB mají další sadu klíčů registru, aby bylo možné používat LocalDB v režimu Windows-32-on-Windows-64 (WOW64). Konkrétně v 64bitovém Systému Windows vytvoří MSI LocalDB následující klíče registru:
[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"
64bitové programy, které čtou Installed Versions klíč, vidí hodnoty odkazující na 64bitové verze SQLUserInstance knihovny DLL, zatímco 32bitové programy (spuštěné v 64bitovém režimu Windows v režimu WOW64) jsou automaticky přesměrovány na Installed Versions klíč umístěný pod podregistrem Wow6432Node . Tento klíč obsahuje hodnoty odkazující na 32bitové verze SQLUserInstance knihovny DLL.
Use LOCALDB_DEFINE_PROXY_FUNCTIONS
Rozhraní API instance LocalDB definuje konstantu s názvem LOCALDB_DEFINE_PROXY_FUNCTIONS , která automatizuje zjišťování a načítání SqlUserInstance knihovny DLL.
Část kódu povolená touto konstantou poskytuje implementaci proxy pro každou z rozhraní API LocalDB. Implementace proxy serveru používají společnou funkci k vytvoření vazby k vstupním bodům v nejnovější nainstalované SqlUserInstance knihovně DLL a následné předávání požadavků.
Funkce proxy serveru jsou povoleny pouze v případě, že je konstanta LOCALDB_DEFINE_PROXY_FUNCTIONS definována v uživatelském kódu před zahrnutím souboru msoledbsql.h. Konstanta by měla být definována pouze v jednom zdrojovém modulu (.cpp souboru), protože definuje názvy externích funkcí pro všechny vstupní body rozhraní API. Poskytuje implementaci proxy serverů pro každou z rozhraní API LocalDB.
Následující příklad kódu ukazuje, jak použít makro z nativního kódu C++:
// 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)))
{
...
}
...