Поиск:

Ответ в темуСоздание новой темы Создание опроса
> fb 1.5 изменить кодировку по умолчанию, чем грозит правка RDB$DATABASE 
:(
    Опции темы
superVad
Дата 12.7.2014, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



Есть база на фб 1.5. Надо ее перевести на юникод. С полями сейчас вроде разбираюсь. Но вот как поменять кодировку по умолчанию?
Сейчас делаю так:
Код

update RDB$DATABASE set RDB$CHARACTER_SET_NAME = 'UNICODE_FSS';#


Хотелось бы узнать - достаточно ли этого, может еще где подправить и чем такая правка системной таблицы может грозить?
PM MAIL   Вверх
Akella
Дата 15.7.2014, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Может лучше через IBExpert? Извлечь скрипт базы и пересоздать, а потом и скрипт с данными, а потом залить в новую базу. Заодно и на FB 2.5 переехал бы.

Добавлено через 1 минуту и 7 секунд
Цитата(superVad @  12.7.2014,  16:07 Найти цитируемый пост)
Сейчас делаю так:

А толку с того, что ты изменишь ТИП ПОЛЯ? А данные-то в них останутся в старом виде.
PM MAIL   Вверх
superVad
Дата 18.7.2014, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



Цитата(Akella @  15.7.2014,  19:06 Найти цитируемый пост)
Может лучше через IBExpert? Извлечь скрипт базы и пересоздать, а потом и скрипт с данными, а потом залить в новую базу. Заодно и на FB 2.5 переехал бы.

Если бы база была одна на моем рабочем компе - я бы такой ерундой не маялся. Программ много и доступа до них нету. Давнее желание перейти на 2.5 есть, но как нибудь потом.


Цитата(Akella @  15.7.2014,  19:06 Найти цитируемый пост)
А толку с того, что ты изменишь ТИП ПОЛЯ? А данные-то в них останутся в старом виде.


Цитата(superVad @  12.7.2014,  15:07 Найти цитируемый пост)
С полями сейчас вроде разбираюсь. Но вот как поменять кодировку по умолчанию?


Если интересно. Я создаю временную таблицу, перекидываю туда данные. Очищаю нужную таблицу удаляю нужные столбцы и создаю их заново в нужной кодировке. Возвращаю данные из временной таблицы, фб их автоматом перекодирует. Удаляю временную таблицу.
Но это по простому если. Там же еще есть триггеры, индексы, процедуры зависимые от удаляемых полей. Так что их всех надо сначала удалить, а потом создать.
Это все можно сделать и правкой системных таблиц, но я как то не решился.

Кодировка по умолчанию, это кодировка в которой создаются текстовые поля когда явно не указано. Она указывается при создании базы. С ФБ 2.0, кажется, ее можно запросом изменить.
PM MAIL   Вверх
Akella
  Дата 20.7.2014, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(superVad @  18.7.2014,  18:39 Найти цитируемый пост)
Если бы база была одна на моем рабочем компе - я бы такой ерундой не маялся. Программ много и доступа до них нету. Давнее желание перейти на 2.5 есть, но как нибудь потом.


переходи без юникода
для этого достаточно забыкапить базу под 1.5 и восстановить под 2.5
в принципе, это можно сделать локально на одном ПК без установки двух серверов, cmd-скриптом

Добавлено @ 14:00
Цитата(superVad @  18.7.2014,  18:39 Найти цитируемый пост)
удаляю нужные столбцы


если "нужные" столбцы задействованы (связаны) где-то в процедуре или в представлении, то FB не даст их удалить

Добавлено @ 14:01
Цитата(superVad @  18.7.2014,  18:39 Найти цитируемый пост)
Но это по простому если. Там же еще есть триггеры, индексы, процедуры зависимые от удаляемых полей. Так что их всех надо сначала удалить, а потом создать.


воот

Добавлено @ 14:04
можно попробовать такой алгоритм:
- перекодируем базу в FB2.5 или даже в 3
- добавляем в базу юникодные поля
- перекидываем данные из старых полей в новые
- изменяем программу на использование новых юникодных полей
- изменяем внутренности базы (процедуры, триггеры) на использованием новых полей
- удаляем старые поля
- тестируем все запросы и программу, чтобы ничто не ссылалось на старые поля

Добавлено через 6 минут и 42 секунды
Ещё нужно подумать, реально ли нужны юникодные поля?
PM MAIL   Вверх
superVad
Дата 21.7.2014, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



Цитата(Akella @  20.7.2014,  12:59 Найти цитируемый пост)
Ещё нужно подумать, реально ли нужны юникодные поля?

Только ради них все и делается. Нужна поддержка другого языка.


Цитата(Akella @  20.7.2014,  12:59 Найти цитируемый пост)
тестируем все запросы и программу, чтобы ничто не ссылалось на старые поля

Это что то из области фантастики. Программа большая и запутанная.

Да и собственно, все уже готово. Только с функциями не ясно до конца.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0720 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.