Коды завершения этапа прекомпиляции
Коды завершения этапа прекомпиляции представлены в таблице 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 |
Опция распознается синтаксическим анализатором, но не обрабатывается. |
В данной версии прекомпилятора эта опция не обрабатывается. |