次の方法で共有


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
指定した 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
予期しないエラーが発生しました。 詳細をイベント ログで確認してください。

詳細

struct size 引数 (lpInstanceInfoSize) の導入の背景にある理由は、API が異なるバージョンの LocalDBInstanceInfostruct を返し、前方互換性と下位互換性を有効にできるようにすることです。

struct size 引数 (lpInstanceInfoSize) が既知のバージョンの LocalDBInstanceInfostruct と一致する場合、そのバージョンの struct が返されます。 それ以外の場合、LOCALDB_ERROR_INVALID_PARAMETER が返されます。

LocalDBGetInstanceInfo API の使用の一般的な例は次のようになります。

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

LocalDB API を使用するコード サンプルについては、「 SQL Server Express LocalDB リファレンスを参照してください。

参照

SQL Server Express LocalDB ヘッダーとバージョン情報