powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перевод БД из 1251 в utf8
22 сообщений из 22, страница 1 из 1
Перевод БД из 1251 в utf8
    #39753033
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 2.5
База в свое время создавалась в 1251.
Все поля всех таблиц переведены в utf8.
Выполняют бекап из Вин, рестор в CentOS.
Выдает ошибку:
gbak: ERROR:CHARACTER SET WIN1251 is not installed
gbak: ERROR: Error while parsing procedure R1_DOTRANS's BLR
gbak:Exiting before completion due to errors

Пробовал в исходной БД выполнить:
ALTER CHARACTER SET UTF8 SET DEFAULT COLLATION UNICODE

Не помогло.

В вин все действия из IBExpert, в линуксе - gbak.
В IBExpert в свойствах бд пишет charset utf8

Если в IBExpert выполнить Extract metadata, то пишет:
SET SQL DIALECT 3;

SET NAMES WIN1251;

CREATE DATABASE 'D:\Tria\Bases\Trade_demo.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39753072
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забей на gbak, создавай БД из скрипта, потом переливай данные ibdatapump с правильно
расставленными чарсетами обоих коннектов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39753158
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
triaВсе поля всех таблиц переведены в utf8.
"переведены" - это как это? Создан новый столбец в ютф8, и туда скопированы данные?
Если нет, то это фигня какая-то.

triaВыполняют бекап из Вин, рестор в CentOS.
Выдает ошибку:
gbak: ERROR:CHARACTER SET WIN1251 is not installed
это значит криво установлен ФБ, не может найти чарсет 1251. Надо ставить из дистрибутива с firebirdsql.org, а не из репозитария.

Кроме того, есть
http://www.ibase.ru/unicode_faq/

а там написано, что переводить БД в другую кодировку можно ТОЛЬКО через создание заново из скрипта, и копированием данных через ibpump или типа того.

Собственно, с чарсетами "БД" и столбцов в ФБ всё очень просто, надо только в трех соснах не блуждать.
Главное понимать, что нет никакого "чарсета БД". Есть только дефолтный чарсет для новых строковых столбцов.
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39754243
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗабей на gbak, создавай БД из скрипта, потом переливай данные ibdatapump с правильно
расставленными чарсетами обоих коннектов.


Скачал IBPump.exe. В нем отсуствует utf8...
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39754244
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv"переведены" - это как это? Создан новый столбец в ютф8, и туда скопированы данные?
Если нет, то это фигня какая-то.

Делалось это пару лет назад.
Создавалась новая колонка в ютф8, данные конвертились на клиенте и писались в эту колонку.

kdvНадо ставить из дистрибутива с firebirdsql.org, а не из репозитария.

Кажись, ставил из репозитария.

kdvКроме того, есть
http://www.ibase.ru/unicode_faq/

а там написано, что переводить БД в другую кодировку можно ТОЛЬКО через создание заново из скрипта, и копированием данных через ibpump или типа того.

А
update RDB$DATABASE set RDB$CHARACTER_SET_NAME = 'UTF8'
не сможет спасти отца русской демократии?


Прошу прощения за запоздалые ответы - это не основная работа, а в большей степени "для души" дома.
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39754246
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
triaСкачал IBPump.exe. В нем отсуствует utf8...

Ему и не надо. Он данные не умеет конвертировать. Win1251 ставь на обеих коннектах и
прочитай уже Unicode FAQ на ibase.ru.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39754247
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
triaА
update RDB$DATABASE set RDB$CHARACTER_SET_NAME = 'UTF8'
не сможет спасти отца русской демократии?

ну сколько можно повторять, что "чарсет базы" - это чарсет по умолчанию для НОВЫХ строковых столбцов и переменных?
Что бы ни было записано в этот столбец, существующую базу (таблицы и прочее) это НИКАК НЕ ИЗМЕНИТ.
triaСкачал IBPump.exe. В нем отсуствует utf8...
у вас база исходная в 1251? Так зачем вам utf8 ПРИ КОННЕКТЕ? Как я понял, мой faq по юникоду вы так и не прочитали.
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756261
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все я читал.
Попробовал установить utf8 по дефолту, выгрузил структуру в скрипт, нашел пару мест где оставалась 1251. Все равно бекап-рестор не проходит, хотя в БД 1251 вроде как и не пахнет.
Пришлось делать как в FAQ.
Кодировку в IBPump ставил none.
Вроде как залилось.
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756263
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
triaКодировку в IBPump ставил none.
Вроде как залилось.

Теперь у тебя в новой базе мусор вместо данных. "Поздравляю, Шарик." (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756472
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И какую кодировку по-вашему я должен был установить из имеющихся в IBPump?

Кстати, шарик таки смотрел данные в базе. И выглядят они правильно - как из IBexpert, так и из своего ПО.
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756473
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
triagbak: ERROR:CHARACTER SET WIN1251 is not installed
проблема с ics в конкретном центосе - либо папки не те, либо версия не та, и не грузится.
Так что в конкретной инсталляции никакой utf8 или win1251 работать не будет. Исправлять надо.
Можно же было и погуглить ошибку ...
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756483
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
triaИ какую кодировку по-вашему я должен был установить из имеющихся в IBPump?

Win1251 разумеется. Как и написано в Unicode FAQ, который ты отказался читать.

tria шарик таки смотрел данные в базе. И выглядят они правильно - как из IBexpert,
так и из своего ПО.
Дай угадаю: и эксперт и ПО подключаются с кодировкой NONE и поэтому сервер отдаёт им кучку
байт именно так, как они были в базу засунуты?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756490
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы просто не обратили внимание на самый первый пост:

triaБаза в свое время создавалась в 1251.
Все поля всех таблиц переведены в utf8.
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756491
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756502
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
triaВы просто не обратили внимание на самый первый пост:

Ну, в общем-то да, поскольку топикстартеры под "поля переведены в utf8" чаще всего
понимают всё что угодно, только не правильную конвертацию данных. Но если ты счастливое
исключение из правил, то поставить none в IBPump - действительно правильное решение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756790
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovIBPump - действительно правильное решение.

К сожалению, там нет возможности указать библиотеку доступа.

А что делать, если нужно перекачать данные из базы (FB 2.5) в базу (FB 3.0)?

При попытке протестировать соединение с Firebird 3, программа выдаёт ошибку: connection rejected by remote interface.
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756795
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBPump не дружит с Firebird 3?

Вверху видно, что IBExpert нормально подключается, и ниже видно, что IBPump не может к той же БД.

...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39756828
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11А что делать, если нужно перекачать данные из базы (FB 2.5) в базу (FB 3.0)?

Использовать клиента FB 3.0 для обоих коннектов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39757036
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже перевёл исходную базу на FB 3.
Проблема в том, что не могу понять, как и где указать клиента (DLL библиотеку) в приложении IBPump?
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39757042
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дошло, нужно fbclient.dll переименовать в gds32.dll и положить рядом с IBPump.exe
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39757044
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На шаге 2 нажимаю кнопку Get definition и получаю ошибку: List index out of bounds (-1).

Или я что-то забыл ещё сделать?
...
Рейтинг: 0 / 0
Перевод БД из 1251 в utf8
    #39757046
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открыл справку https://www.clevercomponents.com/products/datapump/dp-tour.asp там старая версия описана :(
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перевод БД из 1251 в utf8
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]