Шрифт:
Интервал:
Закладка:
Для будущих реализаций
RDB$TRANSACTION_ DESCRIPTION
BLOB TEXT
Подтип BLOB transaction description. Описывает подготовленную транзакцию к нескольким базам данных. Доступна в случае потери соединения, которое не может быть восстановлено
BDB$TRIGGER_MESSAGES хранит определения сообщений триггеров (системное использование).
Идентификатор столбца
Тип
IDX
UN
Описание
RDB$TRIGGER NAME
CHAR(31)
Y
Имя триггера, с которым ассоциировано сообщение
RDB$MESSAGE_NUMBER
SMALLINT
Номер сообщения (от 1 до максимум 32 767)
RDB$MESSAGE
VARCHAR(78)
Текст сообщения триггера
RDB$TRIGGERS хранит описания всех триггеров.
Идентификатор столбца
Тип
IDX
UN
Описание
RDB$TRIGGER_NAME ¦
CHAR(31)
Y
Y
Имя триггера
RDB$RE LATI ON_N AME
CHAR(31)
Y
Имя таблицы или просмотра, для которого используется триггер
RDB$TRIGGER_SEQUENCE
SMALLINT
Последовательность (позиция) триггера. Ноль обычно означает, что последовательность не задана
RDB$TRIGGER_TYPE
SMALLINT
= BEFORE INSERT,
2 = AFTER INSERT,
3 = BEFORE UPDATE,
4 = AFTER UPDATE,
5 = BEFORE DELETE,
6 = AFTER DELETE.
Триггеры на многие события (Firebird 1.5 и выше) имеют различные типы, которые используют большие номера. Фактический тип кода зависит от того, какие обрабатываются события и от порядка, в котором представляются события. (Заметим, что не существует видимых причин для того, чтобы порядок событий влиял на код trigger type)
RDB$TRIGGER_SOURCE
BLOB TEXT
Хранит PSQL исходный код триггера
RDB$TRIGGER_BLR
BLOB BLR
Хранит представление триггера в двоичном коде
RDB$DESCRIPTION
BLOB TEXT
Дополнительная документация
RDB$TRIGGER INACTIVE
SMALLINT
Является ли триггер в настоящее время неактивным (1 = неактивный, 0 = активный)
RDB$SYSTEM FLAG
SMALLINT
Определен пользователем (0) либо системой (1 или выше)
RDB$FLAGS
SMALLINT
Внутреннее использование
RDB $ TYPES хранит описания перечисляемых типов, используемых в Firebird.
Идентификатор столбца
Тип
IDX
UN
Описание
RDB$FIELD NAME
CHAR (31)
Имя столбца, для которого определен этот перечисляемый тип. Заметьте, что то же имя столбца появляется во множестве системных таблиц
RDB$TYPE
SMALLINT
Перечислимый идентификатор для типа, который идентифицирует RDB$FIELD NAME. Последовательность чисел является уникальной для каждого отдельного перечисляемого типа (например, 0 = таблица, 1 = просмотр, 2 = триггер, 3 = вычисляемый столбец, 4 = проверка, 5 = процедура - все являются типами из RDB$OBJECT TYPE)
RDB$TYPE_NAME
CHAR(31)
Y
Текстовое представление типа, идентифицированного значением RDB$FIELD_NAME и значением RDB$TYPE
RDB$DESCRIPTION
BLOB TEXT
Может использоваться для документирования
RDB$SYSTEM_FLAG
SMALLINT
Определен пользователем (0) или системой (1 или выше)
RDB$USER_PRIVILEGES хранит полномочия SQL.
Идентификатор столбца
Тип
IDX
UN
Описание
RDB$USER
CHAR(31)
Y
Пользователь, которому предоставляется полномочие
RDB$GRANTOR
CHAR(31)
Имя пользователя, предоставляющего полномочие
RDB$PRIVILEGE
CHAR(6)
Привилегия, предоставляемая в полномочии
RDB$GRANT_OPT | ON
SMALLINT
Содержит ли полномочие авторизацию WITH GRANT OPTION. 1 = да, 0 = нет
RDB$RELATION NAME
CHAR(31)
Y
Объект, к которому предоставляется полномочие
RDB$FIELD_NAME
CHAR(31)
Имя столбца, к которому применяется привилегия на уровне столбца (только привилегии UPDATE и REFERENCES)
RDB$USER_TYPE
SMALLINT
Идентифицирует тип пользователя, которому предоставляется привилегия (например, пользователь, процедура, просмотр и т.д.)
RDB$OBJECT_TYPE
SMALLINT
Идентифицирует тип объекта, к которому предоставляется привилегия
RDB$VIEW_RELATIONS является устаревшей таблицей.
Системные просмотры
Следующие системные просмотры являются подмножеством просмотров, определенных в стандарте SQL-92. Они предоставляют полезную информацию о ваших данных. Вы можете скопировать эти тексты в скрипты и инсталлировать просмотры во всех ваших базах данных.
CHECK_CONSTRAINTS отображает все ограничения CHECK, определенные в базе данных, с исходными текстами определения ограничений.
CREATE VIEW CHECK_CONSTRAINTS (
CONSTRAINT_NAME,
CHECK_CLAUSE )
AS
SELECT RDB$CONSTRAINT_NAME,
RDB$TRIGGER_SOURCE
FROM RDB$CHECK_CONSTRAINTS RC, RDB$TRIGGERS RT
WHERE RT.RDB$TRIGGER_NAME = RC.RDB$TRIGGER_NAME;
CQNSTRAINTS_COLUMN_USAGE отображает столбцы, используемые в ограничениях PRIMARY KEY и UNIQUE и определенные в ограничениях FOREIGN KEY.
CREATE VIEW CONSTRAINTS_COLUMN_USAGE (
TABLE_NAME,
COLUMN_NAME, CONSTRAINT_NAME )
AS
SELECT RDB$RELATION_NAME, RDB$FIELD_NAME, RDB$CONSTRAINT_NAME
FROM RDB$RELATION_CONSTRAINTS RC, RDB$INDEX_SEGMENTS RI
WHERE RI.RDB$INDEX_NAME = RC.RDB$INDEX_NAME;
REFERENTIAL_CONSTRAINTS отображает все ссылочные ограничения, определенные в базе данных.
CREATE VIEW REFERENTIAL_CONSTRAINTS (
CONSTRAINT_NAME,
UNIQUE_CONSTRAINT_NAME,
MATCH_OPTION,
UPDATE_RULE,
DELETE_RULE )
AS
SELECT RDB$CONSTRAINT_NAME,
RDB$CONST_NAME_UQ, RDB$MATCH_OPTION,
RDB$UPDATE_RULE, RDB$DELETE_RULE
FROM RDB$REF_CONSTRAINTS;
TABLE_CONSTRAINTS отображает ограничения на уровне таблицы.
CREATE VIEW TABLE_CONSTRAINTS (
CONSTRAINT_NAME,
TABLE_NAME,
CONSTRAINT_TYPE,
IS_DEFERRABLE,
INITIALLY_DEFERRED )
AS
SELECT RDB$CONSTRAINT_NAME, RDB$RELATION_NAME,
RDB$CONSTRAINT_TYPE, RDB$DEFERRABLE, RDB$INITIALLY_DEFERRED
FROM RDB$RELATION CONSTRAINTS;
Приложение 10. Коды ошибок
Коды ошибок, возвращаемые клиентам или модулям PSQL сервером Firebird 1.5.0, представлены в табл. П10.1. Некоторые коды недоступны в более ранних версиях Firebird. Важно убедиться, что сервер и клиент имеют корректную версию файла firebird.msg (interbase.msg для Firebird 1.0.x), хранящегося в корневом каталоге Firebird. Необязательно копировать MSG-файл на клиентские компьютеры, но если он присутствует, то должен быть корректным.
Таблица П10.1. Коды ошибок Firebird 1.5.0
SQLCODE
GDSCODE
Символ
Текст сообщения
101
335544366
segment
-Segment buffer length shorter than expected.
Длина сегмента буфера меньше, чем ожидается
100
335544338
from no match
-No match for first value expression.
Нет соответствия для первого значения выражения
100
335544354
no_record
-Invalid database key. Неверный ключ базы данных
100
335544367
segstr eof
-Attempted retrieval of more segments than exist.
Попытка поиска больше сегментов, чем существует
100
335544374
stream eof
-Attempt to fetch past the last record in a record stream.
Попытка загрузки в поток записей после последней записи
-84
335544554
nonsql security rel
-Table/procedure has non-SQL security class defined.
Для таблицы/процедуры определен класс безопасности, не являющийся SQL
-84
335544555
nonsql security fid
-Column has non-SQL security class defined.
Для столбца определен класс безопасности, не являющийся SQL
-84
335544668 -
dsql_procedure use err
-Procedure <string> does not return any values.
Процедура <строка> не возвращает никакого значения
-85
335544747
usrname too_long
-The username entered is too long. Maximum length is 31 bytes.
Введенное имя пользователя слишком длинное. Максимальная длина 31 байт
-85
335544748
password too long
-The password specified is too long. Maximum length is 8 bytes.
Указанный пароль слишком длинный. Максимальная длина 8 байт
-85
335544749
usrname required
-A username is required for this operation.
Для этой операции требуется имя пользователя
-85
335544750
password required
-A password is required for this operation.
Для этой операции требуется пароль
-85
335544751
bad?protocol
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование