返回有关指定的 SQL Server Express LocalDB 版本的信息,如该版本是否存在以及完整的 LocalDB 版本号(包括内部版本号和发行版本号)。
将以名为 LocalDBVersionInfo 的 struct 的形式返回该信息,该信息具有以下定义。
typedef struct _LocalDBVersionInfo
{
// Contains the size of the LocalDBVersionInfo struct
DWORD cbLocalDBVersionInfoSize;
// Holds the version name
TLocalDBVersionwszVersion;
// TRUE if the instance files exist on disk, FALSE otherwise
BOOL bExists;
// Holds the LocalDB version for the instance in the format: major.minor.build.revision
DWORD dwMajor;
DWORD dwMinor;
DWORD dwBuild;
DWORD dwRevision;
} LocalDBVersionInfo;
**头文件:**sqlncli.h
语法
HRESULT LocalDBGetVersionInfo(
PCWSTR wszVersionName,
PLocalDBVersionInfo pVersionInfo,
DWORD dwVersionInfoSize
);
参数
wszVersionName
[输入] LocalDB 版本名称。pVersionInfo
[输出] 要存储有关 LocalDB 版本信息的缓冲区。dwVersionInfoSize
[输入] 包含 VersionInfo 缓冲区的大小。
返回
S_OK
函数成功。LOCALDB_ERROR_NOT_INSTALLED
计算机上没有安装 SQL Server Express LocalDB。LOCALDB_ERROR_INVALID_PARAMETER
一个或多个指定的输入参数无效。LOCALDB_ERROR_UNKNOWN_VERSION
指定的 LocalDB 版本不存在。LOCALDB_ERROR_INTERNAL_ERROR
发生了意外错误。 有关详细信息,请参阅事件日志。
详细信息
之所以引入 struct 大小参数 (lpVersionInfoSize),目的是为了使此 API 能够返回不同版本的 LocalDBVersionInfo struct,从而有效地实现向前和向后兼容。
如果 struct 参数大小 (lpVersionInfoSize) 与已知版本的 LocalDBVersionInfo struct 大小匹配,则返回该版本的 struct。 否则,返回 LOCALDB_ERROR_INVALID_PARAMETER。
LocalDBGetVersionInfo API 用法的典型示例如下所示:
LocalDBVersionInfo vi;
LocalDBVersionInfo(L”11.0”, &vi, sizeof(LocalDBVersionInfo));
注释
有关使用 LocalDB API 的代码示例,请参阅 SQL Server Express LocalDB 参考。