Поделиться через


LocalDBStartInstance function

Applies to:SQL Server

Запускает экземпляр SQL Server Express LocalDB.

Header file:msoledbsql.h

Syntax

HRESULT LocalDBStartInstance(
           PCWSTR pInstanceName ,
           DWORD dwFlags ,
           LPWSTR wszSqlConnection ,
           LPDWORD lpcchSqlConnection
);

Arguments

pInstanceName

[Вход] Имя запускаемого экземпляра LocalDB.

dwFlags

[Вход] Зарезервировано для использования в будущем. В настоящее время должно быть равным 0.

wszSqlConnection

[Выход] Буфер для хранения строки подключения к экземпляру LocalDB.

lpcchSqlConnection

[Input/Output] On input contains the size of the wszSqlConnection buffer in characters, including any trailing nulls. На выходе, если указан недостаточный размер буфера, содержит требуемый размер буфера в символах, включая любые конечные символы NULL.

Returns

S_OK: функция завершилась успешно.

Error Description
LOCALDB_ERROR_NOT_INSTALLED SQL Server Express LocalDB не установлен на компьютере.
LOCALDB_ERROR_INVALID_PARAMETER Один или несколько указанных входных параметров недопустимы.
LOCALDB_ERROR_INVALID_INSTANCE_NAME Указанное имя экземпляра недопустимо.
LOCALDB_ERROR_UNKNOWN_INSTANCE Экземпляр не существует.
LOCALDB_ERROR_INSUFFICIENT_BUFFER The specified buffer wszSqlConnection is too small.
LOCALDB_ERROR_WAIT_TIMEOUT При попытке получения блокировок синхронизации истекло время ожидания.
LOCALDB_ERROR_INSTANCE_FOLDER_PATH_TOO_LONG Путь, в котором должен храниться экземпляр, превышает длину MAX_PATH.
LOCALDB_ERROR_CANNOT_GET_USER_PROFILE_FOLDER Не удается получить папку профиля пользователя.
LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER Доступ к папке экземпляра невозможно.
LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY Доступ к реестру экземпляров невозможно.
LOCALDB_ERROR_CANNOT_MODIFY_INSTANCE_REGISTRY Невозможно изменить реестр экземпляров.
LOCALDB_ERROR_CANNOT_CREATE_SQL_PROCESS Невозможно создать процесс для SQL Server.
LOCALDB_ERROR_SQL_SERVER_STARTUP_FAILED Был запущен процесс SQL Server, но запуск SQL Server завершился с ошибкой.
LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT Конфигурация экземпляра была повреждена.
LOCALDB_ERROR_AUTO_INSTANCE_CREATE_FAILED Не удается создать автоматический экземпляр. Сведения об ошибке см. в журнале событий приложений Windows.
LOCALDB_ERROR_INTERNAL_ERROR Произошла непредвиденная ошибка. Подробные сведения см. в журнале событий.

Details

Both the connection buffer argument (wszSqlConnection) and the connection buffer size argument (lpcchSqlConnection) are optional. В следующей таблице показаны варианты использования этих аргументов и их результаты.

Buffer Buffer size Rationale Action
NULL NULL Пользователь хочет запустить экземпляр и не требует имени канала. Запускает экземпляр (имя канала и необходимый размер буфера не возвращаются).
NULL Present Пользователь запрашивает размер выходного буфера. (При следующем вызове пользователь скорее всего запросит запуск). Возвращает требуемый размер буфера (без запуска и возврата канала). Результатом является S_OK.
Present NULL Недопустимо; неверный вход. Возвращается LOCALDB_ERROR_INVALID_PARAMETERрезультат.
Present Present Пользователь хочет запустить экземпляр и ему нужно имя канала, чтобы подключиться к нему после запуска. Проверяет размер буфера, запускает экземпляр и возвращает имя канала в буфере.
Аргумент размера буфера возвращает длину строки "server=", не включая завершающие значения NULL.

Пример кода, использующий API LocalDB, см. в справочнике по SQL Server Express LocalDB.