powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменить кодировку базы
64 сообщений из 64, показаны все 3 страниц
Изменить кодировку базы
    #38754333
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Такая ситуация, что база была создана в win1251 и был добавлены поля в UTF8. Сейчас хочу всю базу перевести в UTF8. Подскажите как это сделать?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754357
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FireBird 2.5
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754366
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozent,

http://www.ibase.ru/unicode_faq.html

- извлечь скрипт из базы (isql -x), убрать все упоминания win1251, но отметить все упоминания collate, чтобы сделать то же самое для юникода.
- создать базу из этого скрипта в UTF8
- скопировать все данные из старой базы в новую каким-нибудь инструментом - IBPump, FBCopy, и т.п.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754452
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, затык! Выгрузил метаданные, упоминания о win1251 там не было. Убрал ещё кодировку у полей utf8.
начинаю загружать скрипт, говорит что база не открыта, как обратится к базе?
Код: sql
1.
Cannot perform operation -- DB is not open.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754471
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozent,

что значит "загружать скрипт"? Скрипт
- должен начинаться с create database если базы нет, или с connect ... если пустая база создана.
- должен выполняться в isql, ibexpert, и т.д.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754481
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я через ibExpert "Инструменты- редактор скриптов" делаю
http://c2n.me/iXvxuT.png
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754487
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozent,

set names none почему стоит в начале скрипта?
почему не раскомментирован create database?
почему у create database стоит character set none, когда должен быть UTF8?
...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754511
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

авторset names none почему стоит в начале скрипта?
так было выгружено, куда его переместить? И вместо NONE нужно написать utf8 ?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754525
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozentтак было выгружено, куда его переместить? И вместо NONE нужно написать utf8 ?
Do what you want
just how you like
nobody has to know


сделай себе create database таким, как он тебе нужен. Я не понимаю, как такие вопросы могут исходить от программиста, который УЖЕ сделал базу и приложение с Firebird.
Непонятно? Прочитай langref.pdf и langref update про create database.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754541
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да извиняюсь) паралельно ещё кое что делаю) думать не охото:)
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754570
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv как такие вопросы могут исходить от программиста
впрочем, понятно, если программист создает одну базу один раз, да еще в IBExpert. разумеется, дальше ему этот create database не уперся. Хотя...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754576
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozentдумать не охото:)Типичное признание типичного паразита...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754577
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvЯ не понимаю
Это же доцент, у него все топики такие.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754581
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите плз. Вот шас создал базу без данных теперь все поля которые варчар имеют указание кодировки utf8 и COLLATION UNICODE.
Так должно быть?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754597
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

и второй! идите в пень! Нет! Просто стыдно признаться что затык возникает на таких мелочах, а вы тролли! Могли бы и не писать сюда...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754602
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DozentМогли бы и не писать сюда...
Ты бы тоже мог не писать, если бы прочёл FAQ по ссылке из первого ответа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754699
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozentвсе поля которые варчар имеют указание кодировки utf8 и COLLATION UNICODE.
ГДЕ они имеют такое указание? В IBExpert, по идее, при совпадении с чарсетом и коллэйтом БД никакой чарсет показываться не должен (в ddl).
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754721
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот у меня на все поля типа VARCHAR показывает utf8, этого указания раньше не было. Меня это смущает.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754728
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754764
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozent,

сравни с базой в 1251. Там показывалось win1251.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754780
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

на скрине там было NONE, создал базу на utf8. Там тоже самое прописыватся.
Загрузить данные пока не получается)
Перечитываю FAQ...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754825
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozentна скрине там было NONE
ну, поздравляю. А что ты говорил тогда про "база была создана в win1251 и был добавлены поля в UTF8"?

Dozentсоздал базу на utf8. Там тоже самое прописыватся.
"то же самое" это что именно? isql прямо NONE пишет, хотя у базы дефолтный чарсет utf8?
Вот я из базы, созданной в UTF, извлек скрипт в о боже, не в isql IBExpert.
Вижу
Код: sql
1.
2.
3.
4.
CREATE DATABASE 'localhost:D:\Firebird2\bin\UTF8.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 8192
DEFAULT CHARACTER SET UTF8;


Выставляю чарсет коннекта NONE - нет, нихрена, все равно такой же скрипт выходит.

DozentЗагрузить данные пока не получается)
Перечитываю FAQ...
ты чего-то не то делаешь. Если не осилил create database, ну создай тогда базу в IBExpert в utf8, а в скрипте раскомментируй connect, а остальные параметры create database закомментируй. И примени этот скрипт на пустой базе uft8.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754908
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Да не:) я скриптом создал базу, залит туда структуру, указав utf8. Всё структура есть, меня смутила что у полей varchar кодировка была прописана, не ожидал там её увидеть...
Да и база первоначально похоже была создана без указания какой либо кодировки вообще... (создавал не я)

Сейчас есть база и её структура на utf без данных. Попытался залить через "редактор скриптов" IBExperta (что за isql понятия не имею) , выдаёт ошибку Malformed, вроде бы всё верно делаю, перечитаю чуть попоже, мб что-то упустил. Но если я копирую запросы и по 5-10 штук закидываю их в редактор скриптов. то они проходят) а весь файл *.sql обрабатывается с ошибкой.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38754997
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozentвыдаёт ошибку Malformed,
ищи русские буквы в скрипте. в процедурах, триггерах.

Dozentсоздана без указания какой либо кодировки вообще... (создавал не я)
мда, грабли. указывать none в источнике при копировании нельзя, т.к. в utf8 эти данные пойдут криво. Придется указывать явно win1251 (вместо none), с надеждой, что они именно так в none и были введены.

Dozent(что за isql понятия не имею)
ты хоть раз в папку Firebird\bin заглядывал? может, ты и про gbak понятия не имеешь? :-)
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38755392
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

чесно:) смутное) знаю что через gbak делается бакап базы ну и копирование нужно делать через бакап/рестор... а как там оно, при необходимости в инете ищу. Раньше вроде бы в IBExpert не было резервного копирования и востсановления...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38755401
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozent Раньше вроде бы в IBExpert не было резервного копирования и востсановления...
оно всегда там было, с тех пор как в IB6 появилась поддержка Services API.
http://www.ibase.ru/devinfo/gbak.htm
Но при этом, все равно нужно знать утилиты, поставляемые с FB, и всегда и везде одинаково работающие на любой платформе. Хотя бы, нужно знать об их существовании, и для чего они нужны.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38755436
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvНо при этом, все равно нужно знать утилиты, поставляемые с FB, и всегда и везде одинаково работающие на любой платформе. Хотя бы, нужно знать об их существовании, и для чего они нужны.
Ого,может ещё и книги по Firebird читать? :) Можно же просто зайти на форум и парить всех глупыми вопросами
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38756318
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarkdvНо при этом, все равно нужно знать утилиты, поставляемые с FB, и всегда и везде одинаково работающие на любой платформе. Хотя бы, нужно знать об их существовании, и для чего они нужны.
Ого,может ещё и книги по Firebird читать? :) Можно же просто зайти на форум и парить всех глупыми вопросами

"Ой,дяденька, а зачем нам папочка ..\bin?" ;)
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38756491
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster
"Ой,дяденька, а зачем нам папочка ..\bin?" ;)
неа,папочка /doc и файлик Firebird_v2.5.3.ReleaseNotes.pdf
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38758161
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор покарай тролей!!!
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38758162
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблему пока не решил, как решу отпишусь, прошу тему не закрывать...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38758170
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DozentМодератор покарай тролей!!!
самоубийца?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38759452
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, спасибо за ответы.
Базу удачно перевёл в utf8...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38759455
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нет! не совсем удачно, картинки из blob полей пропали, похоже что-то не так сделал...
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38759457
Dozent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понимаю у меня не полная версия, но ведь IBExpert для нас бесплатный
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #38759480
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dozent,не полная версия чего, IBE? Скачай и распакуй http://www.ibexpert.com/rus/ibe_sfx.exe
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Изменить кодировку базы
    #39534501
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перевёл базу из WIN-1251 в UTF8.

IBExpert теперь при открытии таблицы выводит ошибку:
block size exceed implementation restriction

20859735



Есть какие-то ограничения на общий размер текстовых полей одной таблицы?
Например, если в таблице есть 2-4 поля varchar общим размером более 8191 символ.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534503
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

64K на запись таблицы
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534506
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. это 16000 символов на таблицу?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534510
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл проблему с вычисляемыми полями.
Вычисляемое поле получает значение их хранимой процедуры.
Размер выходного параметра процедуры = 4000.
А получившийся размер поля = 16000. Это нормально?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534517
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Это нормально?не делай в юникоде поля длиннее 8к.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534518
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не делаю.
Firebird сам "поставил" 16000 вместо 4000.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534519
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Например, если в таблице есть 2-4 поля varchar общим размером более 8191 символ.в трешке это ограничение сильно отодвинуто и уже совершенно не ограничивает.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534521
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
What is it "сам"?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534522
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

удали вычисляемое поле. Перекомпилируй ХП и вновь добавь
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534524
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

не совсем. В трёшке на таблицу точно такое же ограничение, а вот на резалтсет действительно увеличено. Т.е. через декомпозицию записи на несколько таблиц в связке 1-1 можно добиться желаемого.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534525
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисX11,

удали вычисляемое поле. Перекомпилируй ХП и вновь добавь
не помогло
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534529
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

шапку процедуры и DDL таблицы приведи.
Сама БД пересоздана в UTF-8 или отдельные поля переведены?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534530
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyWhat is it "сам"?

При добавлении/создании вычисляемого поля вы ведь не указываете размер поля. Его указывает сам Firebird.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534531
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисшапку процедуры и DDL таблицы приведи.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create or alter procedure SP_GET_PRM_NAME (
    ID_LIST type of column APART.PRM)
returns (
    RESULT varchar(4000))
as
declare variable PRM_NAME type of column SPR_PRM.NAME;
declare variable PRM_LIST varchar(4000);
BEGIN
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534532
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисСама БД пересоздана в UTF-8 или отдельные поля переведены?

Полностью пересоздана из скрипта и данные перезалиты. Ошибок при выполнении скрипта не было.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534548
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

сделай явный cast в вычисляемом поле
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534561
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисX11,

сделай явный cast в вычисляемом поле

А как же остальные работают? Проблема только у меня что ли?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534573
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисX11,

сделай явный cast в вычисляемом поле

всё равно 16000 IBExpert показывает

скрипт создания домена
Код: sql
1.
CREATE DOMAIN STRING4000 AS VARCHAR(4000) CHARACTER SET UTF8 COLLATE UTF8;



...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534581
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

а в IBE правильная кодировка подключения выбрана?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534584
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заглянул в RDB$FIELDS, там в поле RDB$FIELD_LENGTH указано 16000.
А здесь http://www.ibase.ru/unicode_faq/ написано, что RDB$FIELD_LENGTH - это размер столбца в байтах. Т.е. всё ОК по идее.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534588
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот в поле RDB$CHARACTER_LENGTH указано 0 (ноль). Так и должно быть?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534595
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениса в IBE правильная кодировка подключения выбрана?

UTF8

...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534604
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, если бы Firebird более развернутый текст ошибки показывал, например, имя поля и/или процедуры.
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534609
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11А как же остальные работают? Проблема только у меня что ли?

Остальные знают что такое чарсеты и сколько байт на символ в них может быть. Но нет,
проблема не только у тебя, таких как ты много.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534614
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11А как же остальные работают?Никогда не делал селектов внутрях домена, как-то даже в голову не приходило.

Заменить таблицу с вычисляемыми полями вьюхой?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534619
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovX11А как же остальные работают? Проблема только у меня что ли?

Остальные знают что такое чарсеты и сколько байт на символ в них может быть. Но нет,
проблема не только у тебя, таких как ты много.
Я знаю, что UTF8 - это 4 байта на символ.


IBExpert, как я понимаю, в поле Длина показывает размеры и в байтах, и в символах одновременно?



Например, там, где "1", там односимвольные поля.
А там, где 16000, там 4000 символов, но показывает 16000, значит в байтах.
Но "визуально" и если не знаешь, то непонятно, например, 500 - это в байтах или в символах?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534637
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос вдогонку. При создании varchar поля, какой более правильный размер будет: 255 или 256, 1024 или 1023?
...
Рейтинг: 0 / 0
Изменить кодировку базы
    #39534640
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11IBExpert, как я понимаю, в поле Длина показывает размеры и в байтах, и в символах
одновременно?

С вопросами "что именно показывает эксперт" - в соответствующий раздел. Ибо это может быть
хоть температура на Марсе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
64 сообщений из 64, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменить кодировку базы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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