Condividi tramite


Funzione LocalDBGetInstanceInfo

Restituisce informazioni per l'istanza di SQL Server Express LocalDB specificata, ad esempio se esiste, la versione di LocalDB usata, se è in esecuzione e così via.

Le informazioni vengono restituite in un struct oggetto denominato LocalDBInstanceInfo, che ha la definizione seguente.

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;  
  

File di intestazione: sqlncli.h

Sintassi

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

Parametri

wszInstanceName
[Input] Nome dell'istanza.

pInstanceInfo
[Output] Buffer per archiviare le informazioni sull'istanza di LocalDB.

dwInstanceInfoSize
[Input] Contiene le dimensioni del buffer InstanceInfo .

Restituzioni

S_OK
Funzione completata.

LOCALDB_ERROR_NOT_INSTALLED
SQL Server Express LocalDB non è installato nel computer.

LOCALDB_ERROR_INVALID_PARAMETER
Uno o più parametri di input specificati non sono validi.

LOCALDB_ERROR_INVALID_INSTANCE_NAME
Il nome dell'istanza specificato non è valido.

LOCALDB_ERROR_UNKNOWN_INSTANCE
L'istanza non esiste.

LOCALDB_ERROR_INSTANCE_FOLDER_PATH_TOO_LONG
Il percorso in cui deve essere archiviata l'istanza è più lungo di MAX_PATH.

LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER
Non è possibile accedere a una cartella di istanza.

LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY
Non è possibile accedere a un registro di istanze.

LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT
Una configurazione dell'istanza è danneggiata.

LOCALDB_ERROR_INTERNAL_ERROR
Errore imprevisto. Per informazioni dettagliate, vedere il registro eventi.

Dettagli

La logica alla base dell'introduzione dell'argomento size (lpInstanceInfoSize) consiste nell'consentire struct all'API di restituire versioni diverse di LocalDBInstanceInfostruct, abilitando in modo efficace la compatibilità con le versioni successive e precedenti.

Se l'argomento struct size (lpInstanceInfoSize) corrisponde alle dimensioni di una versione nota di LocalDBInstanceInfostruct, viene restituita tale versione di struct . In caso contrario, viene restituito LOCALDB_ERROR_INVALID_PARAMETER.

Un esempio tipico di utilizzo dell'API LocalDBGetInstanceInfo è simile al seguente:

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

Per un esempio di codice che usa l'API LocalDB, vedere Informazioni di riferimento su SQL Server Express LocalDB.

Vedere anche

Informazioni sull'intestazione e sulla versione di SQL Server Express LocalDB