![]() |
|
![]() ![]() ![]() |
|
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
Есть база на фб 1.5. Надо ее перевести на юникод. С полями сейчас вроде разбираюсь. Но вот как поменять кодировку по умолчанию?
Сейчас делаю так:
Хотелось бы узнать - достаточно ли этого, может еще где подправить и чем такая правка системной таблицы может грозить? |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Может лучше через IBExpert? Извлечь скрипт базы и пересоздать, а потом и скрипт с данными, а потом залить в новую базу. Заодно и на FB 2.5 переехал бы.
Добавлено через 1 минуту и 7 секунд А толку с того, что ты изменишь ТИП ПОЛЯ? А данные-то в них останутся в старом виде. |
|||
|
||||
superVad |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
Если бы база была одна на моем рабочем компе - я бы такой ерундой не маялся. Программ много и доступа до них нету. Давнее желание перейти на 2.5 есть, но как нибудь потом.
Если интересно. Я создаю временную таблицу, перекидываю туда данные. Очищаю нужную таблицу удаляю нужные столбцы и создаю их заново в нужной кодировке. Возвращаю данные из временной таблицы, фб их автоматом перекодирует. Удаляю временную таблицу. Но это по простому если. Там же еще есть триггеры, индексы, процедуры зависимые от удаляемых полей. Так что их всех надо сначала удалить, а потом создать. Это все можно сделать и правкой системных таблиц, но я как то не решился. Кодировка по умолчанию, это кодировка в которой создаются текстовые поля когда явно не указано. Она указывается при создании базы. С ФБ 2.0, кажется, ее можно запросом изменить. |
||||||
|
|||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
переходи без юникода для этого достаточно забыкапить базу под 1.5 и восстановить под 2.5 в принципе, это можно сделать локально на одном ПК без установки двух серверов, cmd-скриптом Добавлено @ 14:00 если "нужные" столбцы задействованы (связаны) где-то в процедуре или в представлении, то FB не даст их удалить Добавлено @ 14:01
воот Добавлено @ 14:04 можно попробовать такой алгоритм: - перекодируем базу в FB2.5 или даже в 3 - добавляем в базу юникодные поля - перекидываем данные из старых полей в новые - изменяем программу на использование новых юникодных полей - изменяем внутренности базы (процедуры, триггеры) на использованием новых полей - удаляем старые поля - тестируем все запросы и программу, чтобы ничто не ссылалось на старые поля Добавлено через 6 минут и 42 секунды Ещё нужно подумать, реально ли нужны юникодные поля? |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
Только ради них все и делается. Нужна поддержка другого языка.
Это что то из области фантастики. Программа большая и запутанная. Да и собственно, все уже готово. Только с функциями не ясно до конца. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |