Какие-то непонятки...
Вроде на 1.5 функция SUBSTRING должна преобразовывать текстовый BLOB в
VARCHAR, однако это срабатывает для блобов в созданных мной таблицах, и
не работает в системных.
Вот такой запрос выполняется нормально:
select c.Num, c.Name, substring(c.Requisits from 1 for 1000)
from client с
а вот такой:
SELECT substring(rf.RDB$DESCRIPTION from 1 for 1000), rf.RDB$FIELD_NAME
FROM RDB$RELATIONS r, RDB$RELATION_FIELDS rf, RDB$FIELDS f,
RDB$TYPES rt
WHERE
(r.RDB$RELATION_NAME = rf.RDB$RELATION_NAME) and
(rf.RDB$FIELD_SOURCE =f.RDB$FIELD_NAME) and
(f.RDB$FIELD_TYPE = rt.RDB$TYPE) and
((r.RDB$SYSTEM_FLAG = 0) and (r.RDB$VIEW_SOURCE IS NULL) and
(rt.RDB$FIELD_NAME = 'RDB$FIELD_TYPE')) and
(r.RDB$RELATION_NAME='EMPGROUP')
дает
conversion error from string "BLOB".
Разница в объявлении полей вроде только в Charset: у меня c.Requisits
типа WIN1251,
а в RDB$RELATION_FIELDS -- UNICODE_FSS
Как это обойти?
Чарсет коннекта - WIN1251