Последний параметр функции CLI SQLBindFileToParam() - IndicatorValue - описан как "output (deferred)". На самом деле он "input (deferred)".
|Ниже приводятся дополнения к столбцу "Описание" для |аргументовSQL_DESC_AUTO_UNIQUE_VALUE и SQL_DESC_UPDATABLE: |
|Ниже приводится исправление информации в разделе "Usage" под заголовком |"Information Returned by SQLGetInfo": |
|Ниже приводится правильный текст примечания к Таблице 113 "SQLGetLength |Arguments" :
|Примечание: a Для данных DBCLOB длина выражается в |символах.
К Главе 5 "DB2 CLI Functions" (Функции CLI DB2) надо добавить следующий текст:
Спецификация: DB2 CLI 7.x
SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2);
Табл. 13. Аргументы SQLNextResult
Тип данных | Аргумент | Использование | Описание |
---|---|---|---|
SQLHSTMT | StatementHandle | входной | Хэндл оператора. |
SQLHSTMT | StatementHandle | входной | Хэндл оператора. |
Хранимая процедура возвращает несколько наборов результатов, оставляя после выхода один или несколько указателей открытыми. Доступ к первому набору результатов всегда осуществляется путем использования хэндла оператора, вызвавшего хранимую процедуру. Если возвращается несколько наборов результатов, для описания и считывания набора результатов можно использовать либо SQLMoreResults(), либо SQLNextResult().
SQLMoreResults() используется для закрытия указателя для первого набора результатов и позволяет обработку следующего набора результатов, а SQLNextResult() перемещает следующий набор результатов в StatementHandle2 без закрытия указателя при StatementHandle1. Обе функции возвращают SQL_NO_DATA_FOUND, если нет считываемых наборов результатов.
Использование SQLNextResult() позволяет обрабатывать наборы результатов в любом порядке после того, как они были перенесены на другие хэндлы операторов. Смешанные вызовы SQLMoreResults() и SQLNextResult() разрешены до тех пор, пока не исчерпаются указатели (открытые наборы результатов) на StatementHandle1.
Когда SQLNextResult() возвращает SQL_SUCCESS, следующий набор результатов больше не связан с StatementHandle1. Вместо этого следующий набор результатов связывается с StatementHandle2, как если бы SQLExecDirect() только что успешно обработала запрос к StatementHandle2. Поэтому указатель может быть описан с использованием SQLNumResultSets(), SQLDescribeCol() или SQLColAttribute().
После того, как была вызвана SQLNextResult(), набор результатов, теперь связанный с StatementHandle2, удаляется из цепочки оставшихся результатов и не может быть снова использован ни в SQLNextResult(), ни в SQLMoreResults(). Это означает, что для 'n' наборов результатов SQLNextResult() может быть вызвана успешно максимум 'n-1' раз.
Если SQLFreeStmt() вызывается с опцией SQL_CLOSE или SQLFreeHandle() вызывается с установленным для HandleType SQL_HANDLE_STMT, все находящиеся в состоянии ожидания на этом хэндле наборы результатов отбрасываются.
SQLNextResult() возвращает SQL_ERROR, если у StatementHandle2 есть открытый указатель или если StatementHandle1 и StatementHandle2 не находятся на одном и том же соединении. Если возвращаются ошибки или предупреждения, SQLError() должна всегда вызываться с StatementHandle1.
Табл. 14. SQLSTATE для SQLNextResult
SQLSTATE | Описание | Объяснение |
---|---|---|
40003 08S01 | Ошибка связи. | Ошибка связи между прикладной программой и источником данных до выполнения функции. |
58004 | Непредвиденная системная ошибка. | Неисправимая системная ошибка. |
HY001 | Ошибка выделения памяти. | DB2 CLI не в состоянии выделить память, необходимую для выполнения или завершения функции. |
HY010 | Ошибочная последовательность вызова функций. |
Функция была вызвана во время операции обработки данных (SQLParamData(), SQLPutData()). У StatementHandle2 есть открытый связанный с ним указатель.
Функция была вызвана из операции SQL, ограниченной BEGIN COMPOUND и END
COMPOUND.
|
HY013 | Непредвиденная ошибка при работе с памятью. | CLI DB2 не сумел получить доступ к памяти, необходимой для выполнения или завершения функции. |
HYT00 | Истек срок ожидания. | Истек срок ожидания возврата набора результатов источником данных. Истечение времени поддерживается только в системах без многозадачности, таких как Windows 3.1 и Macintosh System 7. Срок ожидания задается при помощи атрибута SQL_ATTR_QUERY_TIMEOUT для SQLSetConnectAttr(). |
Для параметризованных запросов можно использовать только SQLMoreResults().
|Ниже приведен дополнительный атрибут среды, который должен находится в |разделе "Environment Attributes" после "Usage": |
|
|Информацию об атрибуте оператора SQL_ATTR_QUERY_TIMEOUT надо заменить на |следующую: |