Вопрос

Как мы знаем, во многих документах упоминается, что 3-й элемент массива Host SQLCA.SQLERRD т. е. sqlca.sqlerrd[2] содержит совокупное количество строк, обработанных оператором SQL на данный момент (в терминах Pro * C).

Знает ли кто-нибудь о значении других элементов, т.е. [0],[1] и что они означают?

Это было полезно?

Решение

В соответствии с документация по обработке ошибок, они ничего не делают.;они зарезервированы для использования в будущем, хотя начинает казаться маловероятным, что они действительно когда-нибудь будут использованы. sqlerrd объявляется как long[6], но только [2] и [4] по-видимому, используется, причем последнее - смещение в инструкцию SQL для ошибки синтаксического анализа.

Интересно, что они не используют [0], [1] или [3], хотя;интересно, использовались ли они для чего-то другого в более ранней версии. Эта старая ссылка informix имеет аналогичную структуру с аналогичными значениями для [2] и [4], так что это могло бы дать намек на то , для чего они ожидали использовать другие;но это может быть бессмысленным совпадением...

PostgreSQL, похоже, имеет ту же структуру, как и делает DB2, и SQL Сервер есть что-то, что выглядит связанным.Это начинает подозрительно походить на стандарт...хотя и тот, которого Oracle придерживается лишь частично.

Другие советы

из «Руководства Informix to SQL» (февраль 1998 г.):

(«Первый», «второй» и т. Д. Потому что не все языки индексные массивы, начинающиеся с 0.)

Первое - после успешного приготовления оператора для выбора, обновления, вставки или удаления или после открытия выбора курсора открывается, это поле содержит предполагаемое количество пострадавших строк.

Второй - когда SQLCode содержит код ошибки, это поле содержит либо ноль, либо дополнительный код ошибки, называемый код ошибки ISAM, который объясняет причину основной ошибки. После успешной вставки работы одной строки это поле содержит значение любого серийного значения, создаваемого для этой строки.

Третье - после успешной многократной вставки, обновления или удаления операции, это поле содержит количество обрабатываемых строк. После многократной вставки, обновления или удаления операции, которая заканчивается ошибкой, это поле содержит количество строк, которые были успешно обработаны до обнаружения ошибки.

четвертый - после успешной подготовки оператора для выбора, обновления, вставки или удаления или после открытия выбора курсора, это поле содержит расчетную взвешенную сумму доступа к диску и общих строк.

fifth - После синтаксической ошибки в подготовке, выполнить немедленное, объявить или статическое отображение SQL, это поле содержит смещение в тексте оператора, где была обнаружена ошибка.

шестой - после успешной выборки выбранной строки или успешной вставки, обновления или удаления операции, это поле содержит ROWID (физический адрес) последнего обрабатываемого ряда. Соответствует ли это значение ROWID к строке, которую сервер базы данных Возврат к пользователю зависит от того, как сервер базы данных обрабатывает запрос, особенно для выбора утверждений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top