Коммуникационная область

Назначение

Получение статуса исполнения операторов встроенного 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.

Таблица 5. Описание структуры коммуникационной области
ПолеОписание

sqlcaid

8-символьное поле содержит строку 'SQLCA', которая идентифицирует структуру sqlca. Это поле идентифицирует область памяти и используется, как правило, при работе с отладчиком программы (зарезервировано)

sqlabc

Содержит длину в байтах структуры SQLCA (зарезервировано)

sqlcode

Результат обработки SQL-запроса:

  • 0 – нормальное завершение;

  • 100 – нет данных;

  • <  0 – код завершения СУБД ЛИНТЕР

sqlerrml

Зарезервировано

sqlerrmc

Зарезервировано

sqlerrp

Зарезервировано

sqlerrd

sqlerrd[1] – код завершения (дубликат поля sqlcode);

sqlerrd[2] – количество строк, действительно обработанных при выполнении запроса (для INSERT, UPDATE и DELETE)

sqlwarn

Тип выданного диагностического сообщения при исполнении оператора:'W' – предупреждение, иначе ' '

sqlext

Зарезервировано