Каждое сообщение об ошибке сопровождается соответствующим кодом SQLCODE, перечень кодов приведен в таблице.

Таблица Б.1. Сообщения об ошибках SQLCODE (сводные)

SQLCODE Описание
0 Успешное завершение
1-99 Предупреждение или информационное сообщение
100 Конец файла (списка)
<0 Ошибка. Команда не выполнена

С одним кодом SQLCODE связано одно или несколько сообщений, сам текст сообщения однозначно идентифицируется внутренним кодом InterBase. В текст сообщения могут также включаться дополнительные данные, указывающие на объекты базы, к которым относится само сообщение:

<string> - строка, например имя объекта базы или типа объекта; <long> - длинное целое, например идентификационный номер объекта базы или типа объекта;

<digit> - целое, например идентификационный номер объекта базы или типа объекта.

Например:

• ошибка с кодом «-84» сопровождается сообщением «Procedure <string> does not return any values» (код InterBase - 335544668)

• ошибка с кодом «-104» сопровождается сообщением «Token unknown-line <long>, char <long> (код InterBase - 335544634)

• ошибка с кодом «-692» сопровождается сообщением «Maximum indexes per table (<digit>) exceeded» (код InterBase - 335544477).

Вставляемые тексты или числовые значения позволяют конкретизировать объект, при работе с которым возникла ошибка.

Полный перечень кодов ошибок (SQLCODE), кодов ошибок InterBase и связанных с ними сообщений приведен в системной документации (Language Reference).

Краткое описание кодов ошибок (SQLCODE) и комментарии к ним приведены в таблице Б.2.

В первом столбце приведен код ошибки (SQLCODE), в последнем -перечень связанных с ним внутренних кодов InterBase.

Как коды SQLCODE, так и однозначные внутренние коды InterBase можно использовать в функциях обработки ошибок InterBase, чтобы выдавать сообщения или выполнять иные действия, основанные на этих кодах. Использование внутренних кодов позволяет точнее идентифицировать ситуацию, однако при этом нужно помнить о непереносимости таких программ на иные платформы.

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

SQLCODE коды доступны и в приложениях с внедренным SQL, и в процедурах и триггерах (см. конструкцию WHEN ... DO).

Таблица Б.2 Сообщения об ошибках SQLCODE

SQLCODE Комментарий Коды InterBase
101 Попытка прочесть в буфер больше данных, чем их есть, может использоваться для индикации конца данных, например при чтении BLOB. 335544366L
100 Попытка прочесть данные после их исчерпания (конец данных) 335544338, 335544354,

335544367, 335544374

-84 Нарушение прав доступа 335544554, 335544555, 335544668
-103 Неверный тип данных для константы 335544571
-104 Синтаксическая ошибка в команде SQL 335544343, 335544390, 335544425, 335544426, 335544429, 335544440, 335544456, 335544570, 335544579, 335544590, 335544591, 335544592, 335544634, 335544608, 335544612
SQLCODE Комментарий Коды InterBase
-150 Ошибка обновления данных 335544360, 335544362,, 335544446, 335544546
-151 Попытка обновить столбец с доступом только на чтение 335544359
-155 < Строка > не является именем базовой таблицы для обзора 335544658
-157 Необходимо указать имя столбца в выражении select для обзора 335544598
-158 Количество столбцов не соответствует списку в команде select 335544599
-162 Ключ не доступен для обзора, основанного на нескольких таблицах 335544685
-170 Ошибка в параметрах процедуры или пользовательской функции 335544512,335544619
-171 Синтаксическая ошибка, несогласованные данные 335544439, 335544458, 335544618
-172 Функция < Строка > не определена 335544438
-204 Данные, специфицированные в команде, не Определены в базе (сообщение может уточняться именем данных) или неверно указаны 335544463, 335544502, 335544509, 335544511, 335544515, 335544516, 335544532, 335544551, 335544568, 335544573, 335544580, 335544581,

335544588, 335544589,

335544589, 335544595, 335544620, 335544621, 335544622, 335544635, 335544636, 335544640, 335544662,

-205 Не определен указанный в команде столбец 335544396, 335544552
-206 Неверен или не определен столбец 335544578, 335544587, 335544596
-208 Ошибка в конструкции ORDER BY 335544617
-219 Таблица <строка-имя> не определена или неверна 335544395
SQLCODE Комментарий Коды InterBase
-239 Слишком маленький кэш 335544691
-260 Кэш переопределен 335544690
-281 Таблица <строка-имя> не указана в плане 335544637
-282 Таблица <строка-имя> встречается неоднократно, необходимо задавать алиасы 335544638, 335544643, 335544659, 335544660
-283 Таблица <строка-имя> встречается в плане, но нигде не упомянута в запросе 335544639
-284 Индекс <строка-имя> не может использоваться в плане 335544642
-291 Столбец, используемый в первичном или уникальном ключе (PRIMARY или UNIQUE), должен быть объявлен, как NOT NULL 335544531
-292 Нельзя обновить ограничение (RDB$REF_CONSTRAINTS) 335544534
-293 Нельзя обновить ограничение (RDB$CHECK_CONSTRAINTS) 335544535
-294 Нельзя удалить CHECK ограничение (RDB$CHECK_CONSTRAINTS) 335544536
-295 Нельзя обновить ограничение (RDB$RELATION_CONSTRAINTS) 335544545
-296 Внутренняя проверка - ошибка в RDB $CON STR AINT_T YPE 335544547
-297 Команда нарушает ограничение целостности (CHECK) для таблицы или обзора < строка-имя > 335544558
-313 Несоответствие между количествами элементов в списках столбцов и переменных 335544669
-314 Не удается выполнить транслитерацию между символьными наборами (кодовыми таблицами) 335544565
-401 Неверный оператор сравнения 335544647
SQLCODE Комментарий Коды InterBase
-402 Недопустимая операция при работе с BLOB 335544368, 335544414, 335544427
-406 Нижний индекс за пределами допустимых границ 335544457
-407 Сегмент уникального ключа (UNIQUE KEY) - Null 335544435
-413 Ошибка при преобразовании данных 335544334, 335544454
-501 Ошибка при работе с дескриптором 335544327, 335544577
-502 Повторное объявление или открытие курсора 335544574,335544576
-504 Курсор не определен 335544572
-508 Нет записи для выполнения операции fetch 335544348
,-510 Курсор не является обновляемым 335544575
-518 Неопределенный запрос 335544582
-519 Команда PREPARE выполняется над открытым курсором 335544688
-530 Защита FOREIGN KEY <строка> или невозможность выполнить подготовку CREATE DATABASE или SCHEMA 335544466, 335544597
-532 Ошибка ввода-вывода при выполнении транзакции 335544469
-551 Не разрешен доступ <строка> к <строка> 335544352
-552 Недостаточно прав для выполнения операции 335544550, 335544553
-553 Нельзя изменить права пользователя 335544529
-595 Текущая позиция разрушена 335544645
-596 В начале потока обнаружена неверная операция 335544644
-597 Длина предшествующего файла не определена, <строка> должна включать стартовую позицию 335544632
SQLCODE Комментарий Коды InterBase
-598 Номер файла тени (shadow) должен быть положительным 335544633
-599 Узел не поддерживается 335544607
-600 Ошибка при работе с узлом 335544625, 335544680
-601 База данных или файл не существуют 335544646
-604 Ошибка размерности массива 335544593, 335544594
-605 Некорректная ссылка столбца на себя 335544682
-607 Некорректная модификация метаданных 335544351, 335544549, 335544657
-615 Конфликт блокировки данных 335544475, 335544476, 335544507
-616 Запрет модификации (удаления) метаданных из-за их использования другими объектами базы 335544530, 335544539, 335544540, 335544541, 335544543, 335544630, 335544674
-617 Нельзя изменить триггер, переименовать столбец из-за их использования в других ограничениях логической целостности 335544542, 335544544
-618 Нельзя удалить (изменить) сегмент индекса из-за их использования в других ограничениях логической целостности 335544537, 335544538
-625 Ошибка при проверке правильности данных столбца <строка>, значение "<строка>" 335544347
-637 Повторная спецификация <строка> не поддерживается 335544664
-660 Ошибка (недопустимая спецификация) при создании индекса или внешнего ключа 335544533, 335544628
-663 Неверная спецификация индекса 335544624, 335544631, 335544672
-664 Размер ключа для индекса <строка> больше допустимого 335544434
SQLCODE Комментарий Коды InterBase
-677 Ошибка расширения <строка> 335544445
-685 Ошибка при работе со строкой или массивом 335544465, 335544670, 335544671
-689 Неверный тип для страницы (возможно с указанием номера) 335544403, 335544650
-690 Сегмент недопустим в индексном выражении <строка> 335544679
-691 Новый размер записи <число> слишком велик 335544681
-692 Превышено максимальное число индексов для таблицы 335544477
-693 Слишком много параллельных заданий на выполнение одного и того же запроса 335544663
-694 Нет доступа к столбцу <строка-имя> в обзоре <строка-имя> 335544684
-802 Исключительная ситуация при арифметической операции, переполнения или усечение строкового данного 335544321
-803 Попытка ввода дублей в уникальный ключ, защита уникального или первичного ключа <строка-имя> 335544349, 335544665
-804 Несоответствие в количестве аргументов или несоответствии числа переменных и числа столбцов 335544380, 335544583, 335544584, 335544586
-806 В конструкции VIEW WITH CHECK OPTION разрешены только простые имена столбцов 335544600
-807 Не указана конструкция WHERE для VIEW WITH CHECK OPTION 335544601
-808 Для VIEW WITH CHECK OPTION можно использовать только одну таблицу 335544602
-809 Для VIEW WITH CHECK OPTION нельзя использовать конструкции: DISTINCT, GROUP или HAVING 335544603
SQLCODE Комментарий Коды InterBase
-810 Для VIEW WITH CHECK OPTION нельзя использовать подзапросы 335544605
-811 Несколько строк в однострочном запросе (singleton select) 335544652
-816 Внешний файл нельзя открыть для вывода данных 335544651
-817 Попытка выполнить неподдерживаемую операцию (запись в объект только для чтения) 335544361, 335544371, 335544444
-820 Работа с устаревшими версиями 335544356, 335544379, 335544437, 335544467
-823 Неверный дескриптор закладки 335544473
-824 Неверный уровень блокировки <цифра> 335544474
-825 Неверный дескриптор блокировки 335544519
-826 Неверный дескриптор оператора 335544585
-827 Неверный направление в операции поиска 335544655
-828 Неверная позиция ключа 335544678
-829 Неверная ссылка на столбец 335544616
-830 Столбец используется в агрегате 335544615
-831 Попытка создать второй первичный ключ (PRIMARY KEY) к одной и той же таблице 335544548
-832 Количества столбцов в FOREIGN KEY и PRIMARY KEY не совпадают 335544604
-833 Вычисление подобных выражений не поддерживается 335544606
-834 Диапазон номеров для обновления <число> не найден 335544508
-835 Неверная контрольная сумма 335544649
-836 Исключение <цифра> 335544517
-837 Рестарт разделенного менеджера кэша 335544518
SQLCODE Комментарий КодыТпЬегБаэе
-838 База данных <строка-имя> закрывается через <цифра> секунд 335544560
-839 Неверный формат файла журнала 335544686
-840 Переполнение файла журнала 335544687
-841 Слишком много версий 335544677
-842 Неверно указаны размер или точность числовых данных 335544697, 335544698, 335544699, 335544700, 335544701
-901 Ошибка при попытке выполнения команды 335544322, 335544326, 335544326, 335544328, 335544329, 335544330, 335544331,335544332, 335544337, 335544339, 335544340, 335544341, 335544342, 335544345, 335544350, 335544353, 335544355, 335544357, 335544358, 335544363, 335544364, 335544365, 335544369, 335544370, 335544372, 335544376, 335544377, 335544378, 335544382, 335544383, 335544392, 335544407, 335544408, 335544418, 335544419, 335544420, 335544428, 335544431, 335544442, 335544443, 335544450, 335544468, 335544485, 335544510, 335544559, 335544561, 335544562, 335544563, 335544609, 335544610, 335544611,335544613, 335544614, 335544623, 335544626, 335544627, 335544641, 335544656, 335544666, 335544673, 335544675
SQLCODE Комментарий КодыТпЬвгВавв
-902 Ошибка при выполнении команды (возможно внутренняя ошибка InterBase) 335544333, 335544335, 335544344, 335544346,

335544373, 335544384, 335544385, 335544387, 335544388, 335544394, 335544397, 335544398, 335544399, 335544400, 335544401, 335544402, 335544404, 335544405, 335544406, 335544409, 335544410, 335544411, 335544412, 335544413, 335544415, 335544416, 335544417, 335544422, 335544423, 335544432, 335544436, 335544448, 335544449, 335544470, 335544471, 335544472, 335544478, 335544479, 335544480, 335544481, 335544483, 335544506, 335544520, 335544528, 335544557, 335544653, 335544654, 335544564, 335544569

-904 Ошибка при выполнении запроса 335544324, 335544375, 335544381, 335544386, 335544389, 335544391, 335544393, 335544424, 335544430, 335544451, 335544453, 335544455, 335544460, 335544661, 335544676, 335544683
-906 Продукт <строка-имя> не лицензирован 335544452
-909 Команда Drop database выполнена с ошибками 335544667
-911 Запись в транзакции <номер> "in limbo” 335544459
-913 "Deadlock" 335544336
SQLCODE Комментарий Коды InterBase
-922 Файл <строка-имя> не является именем базы данных 335544323
-923 Ошибка соединения 335544421, 335544461,

335544462

-924 Ошибка при подключении 335544325, 335544441, 335544648
-926 Откат не выполнен 335544447
-999 Внутренняя ошибка InterBase 335544689

Справочник по командам и функциям sql | Введение в InterBase | Приложение в описание структуры базы данных testbase


Введение в InterBase



Новости за месяц

  • Август
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс