Коды завершения этапа прекомпиляции

Коды завершения этапа прекомпиляции представлены в таблице 14.

Таблица 14. Коды завершения этапа прекомпиляции
Код завершенияОписаниеПримечание

F_INTERN

Внутренняя ошибка прекомпилятора.

Обратитесь к разработчикам PCC.

E_MANYVAR

Превышен лимит числа переменных в программе.

Общее число переменных, описанных во всех секциях описаний, больше 100.

E_MANYLEV

Превышен лимит уровня вложения блоков.

Число вложений блоков в C/C++ программе больше 40.

E_MANYSTAT

Превышен лимит числа объявлений предложений.

Число объявлений предложений больше 64.

E_MANYCUR

Превышен лимит числа объявлений курсоров.

Число объявлений курсоров больше 64.

E_MANYPROC

Превышен лимит числа объявлений хранимых процедур.

Число объявлений хранимых процедур (директив CREATE PROCEDURE и DECLARE PROCEDURE) больше 256.

E_MANYDB

Превышен лимит числа объявлений БД.

Число объявлений БД больше 10.

E_MANYVARST

Превышен лимит числа переменных в одном предложении.

Число используемых переменных в одном предложении больше 256.

E_MANYINC

Превышен лимит уровня вложенности файлов.

Число вложений файлов (директив EXEC SQL INCLUDE) больше 30.

E_MANYMAC

Слишком много макропеременных.

Число использованных макропеременных больше 30.

E_MANYMOD

Превышен лимит числа объявлений модулей встроенного языка.

Число объявлений модулей встроенного языка больше 40.

E_MANYIF

Слишком большая вложенность условной трансляции.

Вложенность директив условной трансляции превышает 10.

E_MANYDESCR

Превышен лимит числа объявлений дескрипторов встроенного языка.

Число объявлений дескрипторов встроенного языка больше 64.

E_MANYCLS

Превышен лимит числа объявлений классов (С++).

Число объявлений классов основного языка (С++) больше 40.

E_MANYCLSVAR

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

Число объявлений переменных основного языка, принадлежащих классам, больше 256.

E_STRTOOLONG

Слишком длинная строка.

Строка, задающая предложение SQL, превышает 256 символов.

E_NOMEM

Превышен размер доступной памяти.

При работе прекомпилятора невозможно выделить память.

E_HASHFULL

Превышен размер хэш-таблицы.

При работе прекомпилятора переполнилась хеш-таблица имен.

E_BUFFULL

Превышен размер буфера.

При работе прекомпилятора переполнился буфер строки (4096 байт).

E_THEAPFULL

Превышен размер количества лексем.

Число лексем в предложении SQL больше 256.

E_TBUFFULL

Превышен размер буфера лексем.

Общий размер предложения SQL превышает 2096 байт.

E_UNEXPEOF

Неожиданный конец файла.

Конец файла в середине директивы прекомпилятора.

E_COMNOTEND

Конец файла в середине комментария.

Конец файла в середине комментария.

E_CLOSLEV

Закрывающая скобка без предшествующей открывающей скобки.

Несоответствие фигурных скобок (операторные скобки основного языка).

E_INVCHAR

Непечатный символ.

В директиве прекомпилятора встретился недопустимый символ.

E_UNKNAME

Неопределенное имя.

В качестве переменной прекомпилятора или основного языка использовано неопределенное имя.

E_DUPNAME

Повторное определение имени.

В качестве переменной прекомпилятора или основного языка определяется имя, уже определенное ранее.

E_CANTIND

Недопустима индикаторная переменная.

В данном контексте использование индикаторной переменной недопустимо.

E_CANTARR

Недопустим массив.

В данном контексте использование массива недопустимо.

E_CANTPTR

Недопустим указатель.

В данном контексте использование указателя недопустимо (не *CHAR, *BIT).

E_MANYDIM

Размерность массива больше 1.

В качестве переменных основного языка нельзя использовать многомерные массивы.

E_UNSFLOAT

Плавающие типы не могут быть unsigned.

Вещественные числа не могут быть объявлены как беззнаковые.

E_NODECLSEC

Ошибка в секции объявлений.

Синтаксическая ошибка.

E_EMPTARR

Объявлен массив из 0 элементов.

Пустой массив недопустим. Номера элементов должны начинаться с 1.

E_INVTYP

Неверный тип параметра.

Типы формального и фактического параметров вызова процедуры не совпадают.

E_INVPARCNT

Неверное число параметров вызова процедуры.

Несовпадение числа параметров при объявлении процедуры и при ее вызове.

E_DIFSIZE

Разные размеры массивов главных и индикаторных переменных.

Недопустимо использование индикаторной переменной с размером, отличным от размера главной переменной.

E_TWOCURS

Нельзя объявить два курсора для одного предложения.

Для одного и того же предложения нельзя объявить два разных курсора (ограничение действует в текущей версии).

E_NODECLSEC

Нет секции объявлений на верхнем уровне.

В прекомпилируемом модуле не выделено место под секцию деклараций внутренних переменных (внутренняя ошибка прекомпилятора).

E_NOTAREA

Нет коммуникационной области.

Отсутствует директива INCLUDE SQLCA.

E_UNEXPEND

END без предшествующего BEGIN.

В тексте прекомпилируемой программы встретилась директива END DECLARE SECTION, а директивы BEGIN DECLARE SECTION не было.

E_TVAREXP

Ожидалась текстовая переменная.

В качестве имени пользователя и пароля, а также буфера для BLOB, допустимы только переменные типов CHAR и VARCHAR.

E_SINTEXP

Ожидалась целая переменная.

В качестве индикаторной переменной, счетчика выполнения (конструкция FOR) и смещения в BLOB-операциях должна быть использована переменная целого типа, причем в первых двух случаях она должна быть двухбайтовой.

E_CURSEXP

Ожидалась переменная типа CURSOR.

Использование курсорной переменной без ее объявления.

E_CTXEXP

Ожидалась переменная типа CONTEXT.

Использование контекстной переменной без ее объявления.

E_DSCEXP

Ожидалась переменная типа DESCRIPOR.

Использование дескрипторной переменной без ее объявления.

E_NOTOPER

Ожидался оператор встроенного языка.

После префикса EXEC SQL встретилась нераспознанная конструкция.

E_CONDEXP

Ожидалось условие проверки.

После WHENEVER должно встретиться либо NOT FOUND, либо SQLERROR, либо SQLWARNING.

E_ACTNEXP

Ожидалось действие по условию.

После THEN должно встретиться либо STOP, либо CONTINUE, либо GOTO.

E_TOBJEXP

Ожидался тип объявляемого объекта.

В директиве DECLARE должен быть указан тип объекта: либо STATEMENT, либо CURSOR_PCI, либо DATABASE.

E_LANGEXP

Ожидалось имя встроенного языка (SQL) или СУБД ЛИНТЕР.

После слова EXEC должно встретиться слово SQL, либо LINTER.

E_OPTNEXP

Ожидалась опция СУБД ЛИНТЕР.

После EXEC LINTER должно встретиться AREASIZE, OPTION, GET.

E_BISEEXP

Ожидались ключевые слова, BIND или SELECT.

После SQL DESCRIBE должно встретиться либо BIND, либо SELECT.

Ожидалось описание типа параметра.

Ожидалась декларация типа параметра при описании хранимой процедуры.

Ожидался модификатор параметра.

Ожидались слова IN, OUT или INOUT перед именем параметра при описании хранимой процедуры.

E_SEMIEXP

Ожидался конец директивы.

Директиву прекомпилятора должен завершать символ ';'.

E_UNKDECL

Нераспознанный описатель.

Нераспознанная конструкция.

E_STRNOTEND

Нет закрывающей кавычки.

При чтении строки в кавычках не найдена закрывающая кавычка.

E_BOLEXP

Префикс директивы не в начале предложения.

Нельзя смешивать в одной строке директиву прекомпилятора и предложение исходного языка.

E_EOLEXP

Ожидался конец строки.

Нельзя смешивать в одной строке директиву прекомпилятора и предложение основного языка.

E_UNEXPELSE

ELSE без IFDEF или IFNDEF.

Неверная последовательность директив условной трансляции.

E_UNEXPEIF

Неверная последовательность директив условной трансляции.

Не закрыт блок условной трансляции.

E_NOENDIF

Отсутствие директивы ENDIF после IFDEF.

E_BLOPEXP

Ожидалась операция с типом BLOB.

После фразы BLOB должно встретиться либо ADD, либо CLEAR.

E_ENCLREPSEL

Вложенные директивы REPEATED SELECT недопустимы.

E_TOKNEXP

Ожидалась лексема < имя лексемы >.

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

F_OPEN

Ошибка открытия файла < имя файла >.

Ошибка при открытии прекомпилируемого файла.

F_CLOSE

Ошибка создания файла < имя файла >.

Ошибка при создании файла результата прекомпиляции.

F_POSIT

Ошибка позиционирования в выходном файле.

Ошибка при записи в файл результата прекомпиляции.

E_IDNEXP

Ожидался идентификатор.

Ожидался идентификатор, а встретилось нечто иное.

E_ENCLMODUL

Вложенные модули недопустимы.

Данная версия препроцессора не допускает использования вложенных модулей.

E_INVLEV

Неверный уровень вложенности предложений MODULE < имя модуля > и END MODULE < имя модуля >.

Директивы MODULE и END MODULE должны находиться на одинаковом уровне вложенности блоков основного языка.

E_EXPMODULBEG

Отсутствует директива MODULE < имя модуля >.

В блоке основного языка встретилась директива END MODULE < имя модуля > без директивы MODULE< имя модуля >.

E_EXPMODULEND

Отсутствует директива END MODULE < имя модуля >.

Блок основного языка, содержащий директиву MODULE < имя модуля >, завершился без директивы END MODULE < имя модуля >.

E_NOTHREAD

Отсутствует опция -T в вызове прекомпилятора.

Попытка использования директив ENABLE THREADS, CONTEXT {ALLOCATE | USE | FREE} без опции -T (разрешение многопоточности) в вызове прекомпилятора.

E_TOKNEXP

Ожидалась неизвестная лексема.

Внутренняя ошибка прекомпилятора. Обратитесь к разработчикам.

E_SETNOIMP

Опция в SET DESCRIPTOR распознается синтаксическим анализатором, но не обрабатывается.

Используется старая версия прекомпилятора.

E_GETNOIMP

Опция в GET DESCRIPTOR распознается синтаксическим анализатором, но не обрабатывается.

Используется старая версия прекомпилятора.

E_INQUIRENOIMP

Опция в INQUIRE_SQL распознается синтаксическим анализатором, но не обрабатывается.

В данной версии прекомпилятора эта опция не обрабатывается.

E_OPTNOTIMPL

Опция распознается синтаксическим анализатором, но не обрабатывается.

В данной версии прекомпилятора эта опция не обрабатывается.