Objeto ErrorRecord (proveedor OLE DB para DB2)
El objeto ErrorRecord se crea llamando a la interfaz IErrorRecord en el objeto ErrorObject . Se crea un ErrorObject en cualquier interfaz de cualquier objeto OLE DB de SNA cuando se produce un error. El objeto ErrorRecord se usa para recuperar información adicional cuando se produce un error.
La siguiente interfaz del objeto ErrorRecord es compatible con la versión actual de Proveedor OLE DB de Microsoft para DB2:
IErrorInfo
Los métodos de interfaz OLE DB devuelven información de error de dos maneras. El código de error devuelto por un método de interfaz, conocido como código de retorno, indica el éxito o error general de un método. Los registros de error proporcionan información detallada sobre el error, como una descripción de texto del error, el identificador único global (GUID) de la interfaz que definió el error e información de error específica del proveedor. Los objetos error de OLE DB son una extensión de los objetos de error de Automation. Usan muchos de los mismos mecanismos y se pueden usar como objetos de error de Automation.
Los códigos de retorno de error de OLE DB son de tipo HRESULT. Hay dos clases generales de códigos de retorno: códigos correctos y de advertencia, y códigos de error.
Los códigos correctos y de advertencia comienzan por S_ o DB_S_ e indican que el método se completó correctamente. Los códigos de error OLE DB estándar se definen en OLEDBERR. Archivo de inclusión H.
Si el código devuelto no es S_OK o S_FALSE, es probable que se haya producido un error desde el que el método pudo recuperarse. Por ejemplo, IRowset::GetNextRows devuelve DB_S_ENDOFROWSET cuando no puede devolver el número solicitado de filas debido a que llega al final del conjunto de filas. Si se produce una única condición de advertencia, el método devuelve el código de esa condición. Si se producen varias condiciones de advertencia, el método describe la jerarquía de códigos de retorno de advertencia, que indica qué código de advertencia se debe devolver cuando se da una opción entre varios códigos de retorno de advertencia.
Los códigos de error comienzan por E_ o DB_E_ e indican que el método produjo un error por completo y no pudo realizar ningún trabajo útil. Por ejemplo, GetNextRows devuelve E_INVALIDARG cuando un puntero nulo en el que el proveedor OLE DB devuelve un puntero a una matriz de identificadores de fila (prghRows). Una excepción a esto es que algunos de los métodos que devuelven DB_E_ERRORSOCCURRED asignar memoria para devolver información adicional sobre estos errores. Los consumidores deben liberar esta memoria. Para obtener información sobre qué métodos asignan memoria en este caso, vea los métodos que devuelven DB_E_ERRORSOCCURRED.
Aunque los códigos de error pueden indicar errores en tiempo de ejecución, como quedarse sin memoria, suelen indicar errores de programación. Si se producen varios errores, el código que se devuelve es específico del proveedor. Si se producen errores y advertencias, el método produce un error y devuelve un código de error.
Todos los métodos pueden devolver S_OK, E_FAIL y E_OUTOFMEMORY. El código de E_OUTOFMEMORY solo se aplica a los métodos que asignan memoria que se devuelve al consumidor. En algunos casos, el código de E_OUTOFMEMORY podría eliminarse llamando al método que solicita menos valores devueltos, como menos filas de GetNextRows.