Коды возврата
Для краткости можно сказать, что вызов функции-члена класса или структуры завершается либо успехом, либо ошибкой. Точнее сказать, вызов функции может оказаться успешным, но результат может оказаться не тот, на который рассчитывал разработчик приложения.
Дополнительные сведения о кодах возврата OLE DB см. в разделе Коды возврата (OLE DB).
Если функция-член поставщика OLE DB собственного клиента SQL Server возвращает S_OK, вызов функции был успешным.
Если функция-член поставщика OLE DB собственного клиента SQL Server возвращает не S_OK, с помощью макросов OLE/COM FAILED и IS_ERROR можно получить из возвращенного функцией значения HRESULT информацию об успешном или неуспешном выполнении функции.
Если макрос FAILED или IS_ERROR вернул значение TRUE, это служит сигналом для поставщика OLE DB собственного клиента SQL Server, что выполнение функции-члена было неуспешным. Если макрос FAILED или IS_ERROR вернул значение FALSE, а значение HRESULT не равно S_OK, для поставщика OLE DB собственного клиента SQL Server это означает, что выполнение функции было в каком-то смысле успешным. Потребитель может получить подробные сведения об этом «успехе с оговорками» через интерфейсы для работы с ошибками, предоставляемые поставщиком OLE DB для собственного клиента SQL Server. Через эти же интерфейсы можно получить подробные сведения в случае, когда вызов функции был явно неудачным (макрос FAILED возвращает значение TRUE).
Из различных значений HRESULT для «успеха с оговорками» потребители поставщика OLE DB собственного клиента SQL Server часто сталкиваются со значением DB_S_ERRORSOCCURRED. Функции-члены, возвращающие значение DB_S_ERRORSOCCURRED, обычно определяют один или несколько параметров, предоставляющих потребителю значения состояния. Информация, возвращаемая через параметры состояния, может быть единственной информацией о состоянии, доступной потребителю; поэтому для получения значений состояния, когда они доступны, потребители должны реализовать собственную логику приложения.
Функции-члены поставщика OLE DB собственного клиента SQL Server не возвращают код успеха S_FALSE. Для обозначения успешного вызова функции-члены поставщика OLE DB собственного клиента SQL Server всегда возвращают S_OK.