Коммуникационная область
Назначение
Получение статуса исполнения операторов встроенного 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 |
Зарезервировано |