Condividi tramite


Oggetto ErrorRecord (provider OLE DB per DB2)

L'oggetto ErrorRecord viene creato chiamando l'interfaccia IErrorRecord nell'oggetto ErrorObject . Un ErrorObject viene creato in qualsiasi interfaccia in qualsiasi oggetto OLE DB SNA quando si verifica un errore. L'oggetto ErrorRecord viene utilizzato per recuperare informazioni aggiuntive quando si verifica un errore.

L'interfaccia seguente dell'oggetto ErrorRecord è supportata dalla versione corrente di provider Microsoft OLE DB per DB2:

  • IErrorInfo

    I metodi di interfaccia OLE DB restituiscono informazioni sull'errore in due modi. Il codice di errore restituito da un metodo di interfaccia, noto come codice restituito, indica l'esito positivo o negativo complessivo di un metodo. I record di errore forniscono informazioni dettagliate sull'errore, ad esempio una descrizione testuale dell'errore, l'identificatore univoco globale (GUID) dell'interfaccia che ha definito l'errore e le informazioni sull'errore specifiche del provider. Gli oggetti errore in OLE DB sono un'estensione degli oggetti errore in Automazione. Usano molti degli stessi meccanismi e possono essere usati come oggetti di errore di automazione.

    I codici restituiti di errore OLE DB sono di tipo HRESULT. Esistono due classi generali di codici restituiti: codici di esito positivo e di avviso e codici di errore.

    I codici di esito positivo e di avviso iniziano con S_ o DB_S_ e indicano che il metodo è stato completato correttamente. I codici di errore OLE DB standard sono definiti in OLEDBERR. H file di inclusione.

    Se il codice restituito è diverso da S_OK o S_FALSE, è probabile che si sia verificato un errore da cui è stato possibile recuperare il metodo. Ad esempio, IRowset::GetNextRows restituisce DB_S_ENDOFROWSET quando non è in grado di restituire il numero richiesto di righe a causa del raggiungimento della fine del set di righe. Se si verifica una singola condizione di avviso, il metodo restituisce il codice per tale condizione. Se si verificano più condizioni di avviso, il metodo descrive la gerarchia dei codici restituiti di avviso, che indica quale codice di avviso deve essere restituito quando viene specificata una scelta tra più codici restituiti di avviso.

    I codici di errore iniziano con E_ o DB_E_ e indicano che il metodo non è riuscito completamente e non è riuscito a eseguire operazioni utili. Ad esempio, GetNextRows restituisce E_INVALIDARG quando un puntatore Null in cui il provider OLE DB restituisce un puntatore a una matrice di handle di riga (prghRows). Un'eccezione è che alcuni dei metodi che restituiscono DB_E_ERRORSOCCURRED allocare memoria per restituire informazioni aggiuntive su questi errori. I consumer devono liberare questa memoria. Per informazioni sui metodi che allocano memoria in questo caso, vedere i metodi che restituiscono DB_E_ERRORSOCCURRED.

    Anche se i codici di errore possono indicare errori di runtime, ad esempio l'esaurimento della memoria, in genere indicano errori di programmazione. Se si verificano più errori, il codice restituito è specifico del provider. Se si verificano sia errori che avvisi, il metodo ha esito negativo e restituisce un codice di errore.

    Tutti i metodi possono restituire S_OK, E_FAIL e E_OUTOFMEMORY. Il codice E_OUTOFMEMORY si applica solo ai metodi che allocano memoria restituita al consumer. In alcuni casi, il codice E_OUTOFMEMORY potrebbe essere eliminato chiamando il metodo che richiede meno valori restituiti, ad esempio un numero inferiore di righe da GetNextRows.