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 能够返回 LocalDBInstanceInfostruct 的不同版本,从而有效地实现向前和向后兼容性。

如果结构大小参数 (lpInstanceInfoSize) 与 LocalDBInstanceInfostruct 的已知版本的大小匹配,则返回该版本的结构。 否则,返回 LOCALDB_ERROR_INVALID_PARAMETER。

LocalDBGetInstanceInfo API 用法的典型示例如下所示:

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

有关使用 LocalDB API 的代码示例,请参阅 SQL Server Express LocalDB 参考

另请参阅

SQL Server Express LocalDB 标头信息和版本信息