Коммуникационная область
Назначение
Получение статуса исполнения операторов встроенного SQL в процессе выполнения программы осуществляется через специальную коммуникационную область обмена (см. также подраздел «Информация о результате исполнения запроса»).
Синтаксис
< коммуникационная область >::= EXEC SQL INCLUDE SQLCA;
Данный оператор является неисполняемым и должен размещаться в области неисполняемых операторов до начала исполняемых операторов встроенного SQL (обычно в разделе объявления include-файлов).
Он помещает в претранслированный текст некоторые объявления типов данных, необходимые для компиляции основного модуля, и объявляет структуру данных sqlca.
По умолчанию структура sqlca импортируется из библиотеки PCL (библиотека процедур для сборки кода, полученного в результате работы претранслятора PCI) (подробнее см. «Многомодульные приложения»).
Структура коммуникационной области:
struct sqlca { char sqlcaid[8]; LONG sqlabc; LONG sqlcode; struct { unsigned short sqlerrml; char sqlerrmc[70]; } sqlerrm; char sqlerrp[8]; LONG sqlerrd[6]; char sqlwarn[8]; char sqlext[8]; }
Описание
Описание полей структуры sqlca
приведено в таблице 5.
Поле | Описание |
---|---|
sqlcaid |
8-символьное поле содержит строку 'SQLCA', которая идентифицирует структуру sqlca. Это поле идентифицирует область памяти и используется, как правило, при работе с отладчиком программы (зарезервировано) |
sqlabc |
Содержит длину в байтах структуры SQLCA (зарезервировано) |
sqlcode |
Результат обработки SQL-запроса:
|
sqlerrml |
Зарезервировано |
sqlerrmc |
Зарезервировано |
sqlerrp |
Зарезервировано |
sqlerrd |
sqlerrd[1] – код завершения (дубликат поля sqlcode); sqlerrd[2] – количество строк, действительно обработанных при выполнении запроса (для INSERT, UPDATE и DELETE) |
sqlwarn |
Тип выданного диагностического сообщения при исполнении оператора:'W' – предупреждение, иначе ' ' |
sqlext |
Зарезервировано |