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


Функция LocalDBGetInstanceInfo

Область применения: SQL Server

Возвращает сведения об указанном экземпляре среды выполнения экземпляра SQL Server Express LocalDB, в частности существует ли этот экземпляр, версия используемой им LocalDB, запущен ли экземпляр и т. п.

Сведения возвращаются в структуре с именем LocalDBInstanceInfo, которая содержит следующее определение.

typedef struct _LocalDBInstanceInfo  
{  
      // Contains the size of the LocalDBInstanceInfo struct  
      DWORD  cbLocalDBInstanceInfoSize;  
  
      // Holds the instance name  
      TLocalDBInstanceNamewszInstanceName;  
  
      // TRUE if the instance files exist on disk, FALSE otherwise  
      BOOL   bExists;  
  
      // TRUE if the instance configuration registry is corrupted, FALSE otherwise  
      BOOLbConfigurationCorrupted;  
  
      // TRUE if the instance is running at the moment, FALSE otherwise  
      BOOL   bIsRunning;  
  
      // Holds the LocalDB version for the instance in the format: major.minor.build.revision  
      DWORD  dwMajor;  
      DWORD  dwMinor;  
      DWORD  dwBuild;  
      DWORD  dwRevision;  
  
      // Holds the date and time when the instance was started for the last time  
      FILETIME ftLastStartUTC;  
  
      // Holds the name of the TDS named pipe to connect to the instance  
      WCHARwszConnection;  
  
      // TRUE if the instance is shared, FALSE otherwise  
      BOOLbIsShared;  
  
      // Holds the shared name for the instance (if the instance is shared)  
      TLocalDBInstanceNamewszSharedInstanceName;  
  
      // Holds the SID of the instance owner (if the instance is shared)  
      WCHARwszOwnerSID;   
  
      // TRUE if the instance is Automatic, FALSE otherwise  
      BOOLbIsAutomatic;  
} LocalDBInstanceInfo;  
  

Файл заголовка: msoledbsql.h

Синтаксис

HRESULT LocalDBGetInstanceInfo(  
           PCWSTR wszInstanceName,  
           PLocalDBInstanceInfo pInstanceInfo,  
           DWORD dwInstanceInfoSize   
);  

Параметры

wszInstanceName
[Вход] Имя экземпляра.

pInstanceInfo
[Выход] Буфер для сохранения сведений об экземпляре LocalDB.

dwInstanceInfoSize
[Входные данные] Содержит размер буфера InstanceInfo .

Возвраты

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_INSTANCE_FOLDER_PATH_TOO_LONG
Длина пути к месту хранения экземпляра больше MAX_PATH.

LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER
Не удалось получить доступ к папке экземпляра.

LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY
Не удалось получить доступ к реестру экземпляра.

LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT
Конфигурация экземпляра повреждена.

LOCALDB_ERROR_INTERNAL_ERROR
Произошла непредвиденная ошибка. Подробные сведения см. в журнале событий.

Сведения

Обоснованием внедрения аргумента размера структуры (lpInstanceInfoSize) является включение API для возврата различных версий структуры LocalDBInstanceInfoinfo, эффективно обеспечивая обратную и обратную совместимость.

Если аргумент размера структуры (lpInstanceInfoSize) соответствует размеру известной версии LocalDBInstanceInfostruct, возвращается эта версия структуры. В противном случае возвращается значение LOCALDB_ERROR_INVALID_PARAMETER.

Типичный пример использования API LocalDBGetInstanceInfo выглядит следующим образом:

LocalDBInstanceInfo ii;  
LocalDBInstanceInfo(L"Test", &ii, sizeof(LocalDBInstanceInfo));  
  

Образец кода, использующего API LocalDB, см. в разделе SQL Server Express LocalDB Reference

См. также

Заголовок и сведения о версии SQL Server Express LocalDB