ibrusfaq - что делаю не так?
ibrusfaq - что делаю не так?
понадобился мне upper
прочитал фак, законектился экспертом под сисдба, открыл RDB$RELATION_FIELDS по условию:
(RDB$FIELD_NAME NOT CONTAINING '$') AND (RDB$SYSTEM_FLAG = 0) AND (RDB$COLLATION_ID = 0)
меняю нолик на единицу в первой строчке, комичу и получаю
Cannot commit transaction:
This operation is not defined for system tables.
unsuccessful metadata update.
OPERATORS.
OPERATORS - это такая таблица, там тоже есть варчары и поля из неё первые в этом списке.
не могу поменть нигде никак. всегда получаю это сообщение.
прочитал фак, законектился экспертом под сисдба, открыл RDB$RELATION_FIELDS по условию:
(RDB$FIELD_NAME NOT CONTAINING '$') AND (RDB$SYSTEM_FLAG = 0) AND (RDB$COLLATION_ID = 0)
меняю нолик на единицу в первой строчке, комичу и получаю
Cannot commit transaction:
This operation is not defined for system tables.
unsuccessful metadata update.
OPERATORS.
OPERATORS - это такая таблица, там тоже есть варчары и поля из неё первые в этом списке.
не могу поменть нигде никак. всегда получаю это сообщение.
хорошо-нехорошо это дело последнее. в факе написано, что должно работать, а оно не хочет...kdv писал(а):1. ковырять системные таблицы нехорошо
у меня - не работает2. upper работает и так в FB 1.5
если конекчусь без чарсета
select upper(s.answer) from infosms - выдает ловеркейсные строки
s.answer - домен на варчар 1024
upper(s.answer COLLATE WIN1251) выдает
Data type unknown. COLLATION WIN1251 is not valid for specified CHARACTER SET.
если конекчусь с чарсетом 1251, простой селект или селект с аппером выдает "арифметик оверфлов ор дивижон бай зеро мать, мать, мать...", с COLLATE - тоже самое, что и в первом случае.
так не хочется ничего писать или брать с сайта если оно уже есть и по идее должно работать.3. upper можно написать самому или взять с сайта
так же не работает
update infosms s set s.question = s.question
после ручной смены чарсета и колата на 1251 и 1251_ua
все тот же "арифметик оверфлов..."
признаюсь, мозг я даже не пробовал поключать.
открыл фак и пытался делать по-пунктно - не получилось.
да, нону. до сего момента я вообще никак не думал и ничего не делал с этими чарсетами и коллейтами (не нужно было) - все по умолчанию. а сегодня решил в одной таблице проапперкейсить пару полей (ну и заодно везде перепрописать 1251) и с наскоку по факу не удалось. вот и отписал. я не настаиваю на правке системных таблиц, не подумайте - не получилось просто никак. подозреваю что прокатит метод создания нового поля сразу с заданным чарсетом и переливания данных в него с последующим убиением и переименованием, но это уже завтра.
открыл фак и пытался делать по-пунктно - не получилось.
да, нону. до сего момента я вообще никак не думал и ничего не делал с этими чарсетами и коллейтами (не нужно было) - все по умолчанию. а сегодня решил в одной таблице проапперкейсить пару полей (ну и заодно везде перепрописать 1251) и с наскоку по факу не удалось. вот и отписал. я не настаиваю на правке системных таблиц, не подумайте - не получилось просто никак. подозреваю что прокатит метод создания нового поля сразу с заданным чарсетом и переливания данных в него с последующим убиением и переименованием, но это уже завтра.
я не утверждаю, что он идеален, но:открыл фак и пытался делать по-пунктно - не получилось.
1. написано как создать БД с чарсетом WIN1251
2. написано как указывать чарсет БД при коннекте из разных софтин и компонент
ВСЕ!!!! Делать больше с чарсетами ничего не нужно.
я посоветую еще раз прочитать ibfusfaq.htm , вдумчиво. насчет none там есть всего два абзаца, которые совершенно однозначны и продолжения не имеют.
Они прямо перед текстом
"Вся остальная часть этого документа относится только к официальному способу работы с русскими буквами в IB"
p.s. под "официальным" имеется в виду создание БД в 1251.
p.p.s. у тебя есть только два варианта -
1. остаться на none
2. создать БД заново из скрипта уже в 1251 и перегнать в нее данные.
Да що ви такое говорити (C) Всё ж очинно просто - хакнуть пару байтиков в системных таблицах, и ваще однобайтовый чарсет в трёхбайтовый превратится волшебным образомkdv писал(а): p.p.s. у тебя есть только два варианта -
1. остаться на none
2. создать БД заново из скрипта уже в 1251 и перегнать в нее данные.

