Applies to:SQL Server
指定した SQL Server Express LocalDB インスタンスの情報 (存在するかどうか、使用する LocalDB バージョン、実行中かどうかなど) を返します。
この情報は、次の定義を持つ LocalDBInstanceInfo という名前のstructで返されます。
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;
Header file:msoledbsql.h
Syntax
HRESULT LocalDBGetInstanceInfo(
PCWSTR wszInstanceName ,
PLocalDBInstanceInfo pInstanceInfo ,
DWORD dwInstanceInfoSize
);
Arguments
wszInstanceName
[入力] インスタンス名。
pInstanceInfo
[出力] LocalDB インスタンスについての情報を格納するバッファー。
dwInstanceInfoSize
[Input] Holds the size of the InstanceInfo buffer.
Returns
S_OK: 関数は成功しました。
| Error | Description |
|---|---|
| LOCALDB_ERROR_NOT_INSTALLED | SQL Server Express LocalDB がコンピューターにインストールされていません。 |
| LOCALDB_ERROR_INVALID_PARAMETER | 指定した 1 つまたは複数の入力パラメーターが無効です。 |
| 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 | 予期しないエラーが発生しました。 詳細をイベント ログで確認してください。 |
Details
The rationale behind the introduction of the struct size argument (lpInstanceInfoSize) is to enable the API to return different versions of the LocalDBInstanceInfostruct, effectively enabling forward and backward compatibility.
If the struct size argument (lpInstanceInfoSize) matches the size of a known version of the LocalDBInstanceInfostruct, that version of the struct is returned. それ以外の場合は、LOCALDB_ERROR_INVALID_PARAMETER が返されます。
LocalDBGetInstanceInfo API の使用の一般的な例は次のようになります。
LocalDBInstanceInfo ii;
LocalDBInstanceInfo(L"Test", &ii, sizeof(LocalDBInstanceInfo));
LocalDB API を使用するコード サンプルについては、 SQL Server Express LocalDB リファレンスを参照してください。