Страница 1 из 1
ibrusfaq - что делаю не так?
Добавлено: 14 июн 2006, 17:28
entryway
понадобился мне 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 - это такая таблица, там тоже есть варчары и поля из неё первые в этом списке.
не могу поменть нигде никак. всегда получаю это сообщение.
Добавлено: 14 июн 2006, 17:36
kdv
1. ковырять системные таблицы нехорошо
2. upper работает и так в FB 1.5
3. upper можно написать самому или взять с сайта
Добавлено: 14 июн 2006, 18:08
entryway
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
все тот же "арифметик оверфлов..."
Добавлено: 14 июн 2006, 18:34
dimitr
entryway писал(а):upper(s.answer COLLATE WIN1251) выдает
Data type unknown. COLLATION WIN1251 is not valid for specified CHARACTER SET
вот тут и мне стало интересно - какому же чарсету ты коллейт пытаешься в системных таблицах привить?
Добавлено: 14 июн 2006, 18:38
Merlin
НОНу, вестимо...
Добавлено: 14 июн 2006, 18:50
entryway
признаюсь, мозг я даже не пробовал поключать.
открыл фак и пытался делать по-пунктно - не получилось.
да, нону. до сего момента я вообще никак не думал и ничего не делал с этими чарсетами и коллейтами (не нужно было) - все по умолчанию. а сегодня решил в одной таблице проапперкейсить пару полей (ну и заодно везде перепрописать 1251) и с наскоку по факу не удалось. вот и отписал. я не настаиваю на правке системных таблиц, не подумайте - не получилось просто никак. подозреваю что прокатит метод создания нового поля сразу с заданным чарсетом и переливания данных в него с последующим убиением и переименованием, но это уже завтра.
Добавлено: 14 июн 2006, 19:44
kdv
открыл фак и пытался делать по-пунктно - не получилось.
я не утверждаю, что он идеален, но:
1. написано как создать БД с чарсетом WIN1251
2. написано как указывать чарсет БД при коннекте из разных софтин и компонент
ВСЕ!!!! Делать больше с чарсетами ничего не нужно.
я посоветую еще раз прочитать ibfusfaq.htm , вдумчиво. насчет none там есть всего два абзаца, которые совершенно однозначны и продолжения не имеют.
Они прямо перед текстом
"Вся остальная часть этого документа относится только к официальному способу работы с русскими буквами в IB"
p.s. под "официальным" имеется в виду создание БД в 1251.
p.p.s. у тебя есть только два варианта -
1. остаться на none
2. создать БД заново из скрипта уже в 1251 и перегнать в нее данные.
Добавлено: 14 июн 2006, 20:41
Merlin
kdv писал(а):
p.p.s. у тебя есть только два варианта -
1. остаться на none
2. создать БД заново из скрипта уже в 1251 и перегнать в нее данные.
Да що ви такое говорити (C) Всё ж очинно просто - хакнуть пару байтиков в системных таблицах, и ваще однобайтовый чарсет в трёхбайтовый превратится волшебным образом

А то на всяких отстойных форумах думать велят

Добавлено: 14 июн 2006, 22:33
entryway
ваше завуалированное хамство остается хамством
не стесняетесь, говорите прямо: "пошел вон придурок"
почувствуйте себя киркоровым
про хакнуть - не я придумал
по сабжу - можно больше не "советовать"
спасибо
Добавлено: 15 июн 2006, 00:13
kdv
ваше завуалированное хамство остается хамством
отсутствует здоровое чувство юмора?