Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Applies to:SQL Server
Não há nenhum arquivo de cabeçalho separado para a API de instância do SQL Server Express LocalDB; as assinaturas de função localDB e os códigos de erro são definidos no arquivo de cabeçalho do Microsoft OLE DB Driver for SQL Server (msoledbsql.h). Para usar a API de instância do LocalDB, você deve incluir o msoledbsql.h arquivo de cabeçalho em seu projeto. Este artigo não faz mais referência ao arquivo de cabeçalho do SQL Server Native Client (sqlncli.h).
LocalDB versioning
A instalação de LocalDB usa um único conjunto de binários por versão principal do SQL Server. Estas versões LocalDB são mantidas e corrigidas de maneira independente. Isso significa que o usuário precisa especificar qual versão de linha de base do LocalDB (ou seja, a versão principal do SQL Server) que está usando. A versão é especificada no formato de versão padrão definido pela classe .NET Framework System.Version :
<major>.<minor>[.<build>[.<revision>]]
Os dois primeiros números na cadeia de caracteres de versão (<major> e <minor>) são obrigatórios. Os dois últimos números na cadeia de caracteres de versão (<build> e <revision>) são opcionais e padrão para zero se o usuário os deixar de fora. Isso significa que, se o usuário especificar apenas 12.2 como o número de versão do LocalDB, ele será tratado como se o usuário tivesse especificado 12.2.0.0.
A versão da instalação do LocalDB é definida na MSSQLServer\CurrentVersion chave do Registro na chave do Registro da instância do SQL Server, por exemplo:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13E.LOCALDB\ MSSQLServer\CurrentVersion: "CurrentVersion"="12.0.2531.0"
Diversas versões do LocalDB na mesma estação de trabalho têm suporte lado a lado. No entanto, o código do usuário sempre usa a DLL mais recente disponível SQLUserInstance no computador local para se conectar às instâncias do LocalDB.
Localizar a DLL do SQLUserInstance
Para localizar a SQLUserInstance DLL, o provedor cliente usa a seguinte chave do Registro:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions]
Sob essa chave há uma lista de chaves, uma para cada versão do LocalDB instalada no computador. Cada uma dessas chaves é nomeada com o número de versão do LocalDB no formato <major-version>.
<minor-version> (por exemplo, a chave do SQL Server 2014 (12.x) é denominada 13.0). Em cada chave de versão há um InstanceAPIPath par nome-valor que define o caminho completo para o SQLUserInstance.dll arquivo instalado com essa versão. O exemplo a seguir mostra as entradas do Registro para um computador que tem as versões 11.0 e 13.0 do LocalDB instaladas:
[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"
O provedor cliente deve encontrar a versão mais recente entre todas as versões instaladas e carregar o SQLUserInstance arquivo DLL do valor associado InstanceAPIPath .
Modo WOW64 no Windows de 64 bits
As instalações de 64 bits do LocalDB têm um conjunto extra de chaves do Registro para permitir que aplicativos de 32 bits em execução no modo WINDOWS-32-on-Windows-64 (WOW64) usem o LocalDB. Especificamente, no Windows de 64 bits, o MSI do LocalDB cria as seguintes chaves do Registro:
[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"
Programas de 64 bits que leem a Installed Versions chave veem valores apontando para versões de 64 bits da SQLUserInstance DLL, enquanto os programas de 32 bits (em execução no Windows de 64 bits no modo WOW64) são redirecionados automaticamente para uma Installed Versions chave localizada no Wow6432Node hive. Essa chave contém valores que apontam para versões de 32 bits da SQLUserInstance DLL.
Use LOCALDB_DEFINE_PROXY_FUNCTIONS
A API de instância do LocalDB define uma constante nomeada LOCALDB_DEFINE_PROXY_FUNCTIONS que automatiza a descoberta e o SqlUserInstance carregamento da DLL.
A seção de código habilitada por esta constante fornece uma implementação de proxies para cada API do LocalDB. As implementações de proxy usam uma função comum para associar a pontos de entrada na DLL instalada SqlUserInstance mais recente e encaminhar as solicitações.
As funções de proxy só serão habilitadas se a constante LOCALDB_DEFINE_PROXY_FUNCTIONS for definida no código do usuário antes de incluir o arquivo msoledbsql.h. A constante deve ser definida em somente um módulo de origem (arquivo .cpp) porque define nomes de função externos para todos os pontos de entrada da API. Fornece uma implementação de proxies para cada API de LocalDB.
O exemplo de código a seguir mostra como usar a macro do código de C++ nativo:
// 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)))
{
...
}
...