Funzione JetSetSystemParameter

Si applica a: Windows | Windows Server

Funzione JetSetSystemParameter

La funzione JetSetSystemParameter viene usata per impostare le numerose impostazioni di configurazione del motore di database.

    JET_ERR JET_API JetSetSystemParameter(
      __in_out_opt  JET_INSTANCE* pinstance,
      __in          JET_SESID sesid,
      __in          unsigned long paramid,
      __in          JET_API_PTR lParam,
      __in_opt      JET_PCSTR szParam
    );

Parametri

pinstance

Specifica l'istanza da usare per questa chiamata.

Windows 2000: Per Windows 2000, questo parametro viene ignorato e deve sempre essere NULL.

Windows XP: Per le versioni successive e Windows XP, questo parametro è in qualche modo sovraccaricato. Se il motore è operativo in modalità legacy (modalità di compatibilità windows 2000) in cui è supportata una sola istanza, questo parametro può essere NULL o può contenere l'istanza effettiva restituita da JetInit. In entrambi i casi, tutte le impostazioni dei parametri di sistema vengono lette da tale istanza. Se il motore funziona in modalità multiistanza, questo parametro può essere NULL o un puntatore a un'istanza creata usando JetInit o JetCreateIndex. Quando questo parametro è NULL , l'impostazione del parametro di sistema globale (o impostazione predefinita) viene letta. Quando questo parametro è un'istanza, l'impostazione del parametro di sistema per tale istanza viene letto.

Anche se questo è tecnicamente un parametro out, questa API non modifica mai il contenuto del buffer fornito.

sesid

Specifica la sessione da usare per questa chiamata.

Se specificato, l'istanza specificata viene ignorata e verrà usata l'istanza associata alla sessione.

paramid

ID del parametro di sistema che verrà impostato. Per un elenco completo dei parametri di sistema e delle relative proprietà, vedere Parametri di sistema .

lParam

Fornisce il valore da impostare per il parametro di sistema selezionato se il parametro di sistema è di un tipo integer.

szParam

Fornisce il valore per il parametro di sistema selezionato se il parametro di sistema è di tipo stringa.

Valore restituito

Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sugli errori ESE possibili, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

Windows Vista: In Windows Vista e versioni successive, è possibile restituire l'esito positivo senza una modifica al valore del parametro di sistema. Per altre informazioni, vedere il parametro di sistema JET_paramEnableAdvanced nell'argomento Parametri meta .

JET_errAlreadyInitialized

L'istanza è stata inizializzata usando una chiamata a JetInit e questa operazione non può essere eseguita di conseguenza. Ciò può verificarsi per JetSetSystemParameter quando viene eseguito un tentativo di configurare un parametro di sistema dopo una modifica nel relativo valore non può influire sullo stato del motore di database.

JET_errClientRequestToStopJetService

Non è possibile completare l'operazione perché tutte le attività nell'istanza associata alla sessione non sono state interrotte in seguito a una chiamata a JetStopService.

JET_errIndexTuplesInvalidLimits

I parametri di indice tuple specificati non sono validi. Questo errore può essere restituito da JetSetSystemParameter solo quando si impostano JET_paramIndexTuplesLengthMin, JET_paramIndexTuplesLengthMax o JET_paramIndexTuplesToIndexMax su un valore non valido.

Windows XP e Windows Server 2003: Questo può verificarsi solo in Windows XP e Windows Server 2003.

JET_errInitInProgress

Non è possibile completare l'operazione perché l'istanza associata alla sessione viene inizializzata.

JET_errInstanceUnavailable

Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede che l'accesso a tutti i dati venga revocato per proteggere l'integrità dei dati.

Windows XP: Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errInvalidParameter

Uno dei parametri forniti contiene un valore imprevisto o contiene un valore che non ha senso quando si combina con il valore di un altro parametro. Ciò può verificarsi per JetSetSystemParameter quando:

  • L'ID del parametro di sistema specificato non è valido o non supportato.

  • È stato effettuato un tentativo di impostare un parametro di sistema con valori stringa con una stringa la cui lunghezza era esterna all'intervallo legale per il parametro.

  • È stato effettuato un tentativo di impostare un parametro di sistema con valori stringa con un percorso file in cui la lunghezza della rappresentazione assoluta del percorso era esterna all'intervallo legale per tale parametro.

    Windows Vista: Questa operazione può verificarsi solo nelle versioni di Windows Vista e versioni successive.

  • È stato effettuato un tentativo di impostare un parametro di sistema con valori interi con un valore intero che era all'esterno dell'intervallo legale per il parametro.

  • È stato eseguito un tentativo di impostare JET_paramUnicodeIndexDefault con un puntatore NULLJET_UNICODEINDEX , un LCID non valido o un set non supportato di flag LCMapString.

    Windows Vista: Questa operazione può verificarsi solo nelle versioni di Windows Vista e versioni successive.

  • Impossibile impostare il parametro di sistema specificato perché è di sola lettura.

  • È stato eseguito un tentativo di impostare un parametro di sistema dopo che JetInit è stato chiamato, il motore di database è in modalità istanza singola e una sessione non è stata specificata.

    Windows XP e Windows Server 2003: Questo può verificarsi solo in Windows XP e Windows Server 2003.

  • Il parametro di sistema specificato è globale solo e viene eseguito un tentativo di impostare un valore specifico dell'istanza per tale parametro di sistema.

    Windows XP e Windows Server 2003: Questo può verificarsi solo in Windows XP e Windows Server 2003.

  • Il parametro di sistema specificato è solo per istanza e viene eseguito un tentativo di impostare il valore globale per tale parametro di sistema.

    Windows XP e Windows Server 2003: Questo può verificarsi solo in Windows XP e Windows Server 2003.

JET_errInvalidPath

Il percorso del file system specificato non è valido. Questo errore può essere restituito da JetSetSystemParameter solo quando si impostano i parametri di sistema che rappresentano i percorsi del file system. Ad esempio, JET_paramSystemPath può restituire questo errore.

JET_errNotInitialized

Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata.

JET_errRestoreInProgress

Non è possibile completare l'operazione perché un'operazione di ripristino è in corso nell'istanza associata alla sessione.

JET_errTermInProgress

Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata.

JET_errInvalidSesid

L'handle di sessione non è valido o fa riferimento a una sessione chiusa.

Questo errore non viene restituito in tutte le circostanze. Gli handle vengono convalidati solo su base ottimale.

JET_errInvalidInstance

L'handle di istanza non è valido o fa riferimento a un'istanza che è stata arrestata.

Questo errore non viene restituito in tutte le circostanze. Gli handle vengono convalidati solo su base ottimale.

Windows Vista: Questo errore verrà restituito solo da Windows Vista e versioni successive.

In caso di esito positivo, l'impostazione del parametro di sistema verrà impostata sul valore specificato.

In caso di errore, l'impostazione del parametro di sistema rimarrà invariata.

Commenti

JetSetSystemParameter esegue un processo insufficiente per convalidare l'impostazione scelta per ogni parametro di sistema. È necessario prestare attenzione a non basarsi su questa convalida per applicare impostazioni valide. Prestare attenzione alla descrizione di ogni parametro di sistema e seguire queste linee guida per un'impostazione di parametri di sistema valida.

Esistono un set di parametri di sistema che devono essere sempre impostati per garantire che il motore di database funzioni come previsto. In particolare, tutti i parametri di sistema che influiscono sul layout fisico dei file usati dal motore di database devono essere sempre impostati. Per altre informazioni, vedere Parametri di sistema.

Ogni parametro di sistema ha un valore predefinito. Questi valori predefiniti si sono evoluti nel tempo e sono abbastanza arbitrari. È consigliabile che un'applicazione valuta tutti i valori predefiniti per assicurarsi che siano appropriati. Se non sono appropriati, devono essere configurati dall'applicazione. Questo è importante perché molti di questi parametri possono influire notevolmente sull'affidabilità, sulle prestazioni e sull'utilizzo delle risorse del motore di database.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Unicode

Implementato come JetSetSystemParameterW (Unicode) e JetSetSystemParameterA (ANSI).

Vedere anche

JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetGetSystemParameter
JetInit
Parametri di sistema