Функция LocalDBStartInstance
Область применения: SQL Server
Запускает экземпляр SQL Server Express LocalDB.
Файл заголовка: msoledbsql.h
Синтаксис
HRESULT LocalDBStartInstance(
PCWSTR pInstanceName,
DWORD dwFlags,
LPWSTR wszSqlConnection,
LPDWORD lpcchSqlConnection
);
Параметры
pInstanceName
[Вход] Имя запускаемого экземпляра LocalDB.
dwFlags
[Вход] Зарезервировано для использования в будущем. В настоящее время должно быть равным 0.
wszSqlConnection
[Выход] Буфер для хранения строки подключения к экземпляру LocalDB.
lpcchSqlConnection
[Вход/выход] На входе содержит размер буфера wszSqlConnection в символах, включая конечные значения NULL. На выходе, если указан недостаточный размер буфера, содержит требуемый размер буфера в символах, включая любые конечные символы NULL.
Возвраты
S_OK
Функция выполнена успешно.
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
Указан недостаточный размер буфера wszSqlConnection .
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
Произошла непредвиденная ошибка. Подробные сведения см. в журнале событий.
Сведения
Аргумент буфера соединения (wszSqlConnection) и аргумент размера буфера соединения (lpcchSqlConnection) являются необязательными. В следующей таблице показаны варианты использования этих аргументов и их результаты.
Buffer | Размер буфера | Правильно | Действие |
---|---|---|---|
NULL | NULL | Пользователь хочет запустить экземпляр и не требует имени канала. | Запускает экземпляр (имя канала и необходимый размер буфера не возвращаются). |
NULL | Сейчас | Пользователь запрашивает размер выходного буфера. (При следующем вызове пользователь скорее всего запросит запуск). | Возвращает требуемый размер буфера (без запуска и возврата канала). Результат равен S_OK. |
Сейчас | NULL | Недопустимо; неверный вход. | Возвращаемый результат — LOCALDB_ERROR_INVALID_PARAMETER. |
Сейчас | Сейчас | Пользователь хочет запустить экземпляр и нуждается в имени канала для подключения к нему после запуска. | Проверяет размер буфера, запускает экземпляр и возвращает имя канала в буфере. Аргумент размера буфера возвращает длину строки "server=", не включая завершающие значения NULL. |
Образец кода, использующего API LocalDB, см. в разделе SQL Server Express LocalDB Reference