powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Юникод в базе без конвертации в приложении
25 сообщений из 49, страница 1 из 2
Юникод в базе без конвертации в приложении
    #39534050
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сколько я знаю, то в сама среда Delphi использует UTF16? Или же UTF32? Речь, конечно же о юникодных версиях Дельфи.

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/String_Types_(Delphi) The UnicodeString type has exactly the same structure as the AnsiString type. UnicodeString data is encoded in UTF-16.

Получается, что и приложение использует тоже UTF16?

К чему вопрос.
Если создавать базу, например, в Firebird, то какую кодовую страницу указывать, чтоб в компонентах доступа к базе не нужно было указывать кодировку, ну или чтобы DB-компонентам не приходилось выполнять конвертацию данных?
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534051
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вопрос в догонку.
Кто-нибудь переводил базу из ANSI (Win-1251) на юникод? На сколько это сложно?
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534061
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11например, в Firebird

Вот как раз с Firebird - обломись, она не умеет UTF-16. Как и подавляющее большинство
других СУБД. Поэтому все компоненты доступа обычно конвертируют текст в UTF-8.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534066
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бери Лазаря.
у него utf-8.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534074
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

я так думаю - что через csv или аналог проще всего. мы у себя решили не возиться с конвертацией, а поддержали обе версии. новые базы у нас идут уже в utf, старые работают в 1251. всё работает без проблем.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534076
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534077
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
utf8
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534078
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovX11например, в Firebird

Вот как раз с Firebird - обломись, она не умеет UTF-16. Как и подавляющее большинство
других СУБД. Поэтому все компоненты доступа обычно конвертируют текст в UTF-8.

ничёси
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534081
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonX11,

я так думаю - что через csv или аналог проще всего. мы у себя решили не возиться с конвертацией, а поддержали обе версии. новые базы у нас идут уже в utf, старые работают в 1251. всё работает без проблем

Т.е. надо поддерживать два типа базы?
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534082
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534083
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

если баз довольно много и они большие - то проще так.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534084
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чарсет базы ищу так:

Код: sql
1.
select rdb$character_set_name as charset from rdb$database
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534085
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonX11,

если баз довольно много и они большие - то проще так.

Нет. Спасибо.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534103
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11пока читаю
http://www.sql.ru/forum/1117075/izmenit-kodirovku-bazy
Брось. Читай http://www.ibase.ru/unicode_faq/
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534129
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю. Спасибо.

Я правильно понимаю, что если размер страницы 4096, то размер VARCHAR должен быть 1024?


А то ошибка:
Undefined name. Dynamic SQL Error. SQL error code = -204. Data type unknown. Implementation limit exceeded. COLUMN STR32K.
вот здесь:
Код: sql
1.
CREATE DOMAIN STR32K AS VARCHAR(32000);


Или это касается только индексов, где их размер должен быть 1/4 от размера страницы?
Просто ошибка даже там, где VARCHAR(8192).

Вообще, какой размер страницы рекомендуется для UTF8?


В разделе "Длина строковых столбцов и изменение ее размера" я не нашёл, как правильно рассчитать и указать размер строго поля/домена.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534134
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все строки, насколько я помню, занимают ровно в 4 раза больше места (по байтам). вот из этого можешь исходить.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534138
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторVARCHAR(8192)

потому что максимальный размер VARCHAR в ansi не 32768
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534142
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здесь https://firebirdsql.org/manual/ru/migration-mssql-data-types-ru.html
написано, что
Символьные данные переменной длины (не-Unicode). Максимальная длина 8000 символов. СУБД Firebird способна хранить до 32765 символов.

т.е. максимальная длина varchar unicode будет 8191?
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534144
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonавторVARCHAR(8192)

потому что максимальный размер VARCHAR в ansi не 32768

да, ошибочка :)
32764
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534207
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Подчистил" длинные строки.
Скрипт выполнился успешно.
Буду проверять.
Всем спасибо за подсказки.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534450
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert теперь при открытии таблицы выводит ошибку:

block size exceed implementation restriction


Есть какие-то ограничения на общий размер текстовых полей таблицы?
Например, если в таблице есть 2-4 поля varchar общим размером более 8191.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534480
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийбери Лазаря.
у него utf-8.
это пока что. НАсколько я в курсе, там тоже utf-16 планируется в обозримом будущем
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534712
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

У лазаря utf8 не везде. В линуксе - utf8, в винде - 1251. Собираются вроде бы на 'обычный' юникод переходить.
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534722
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11.10.2017 14:23, makhaon пишет:
> В линуксе - utf8, в винде - 1251.

с чего вдрук?!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Юникод в базе без конвертации в приложении
    #39534735
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Насколько я помню, до было так.
...
Рейтинг: 0 / 0
25 сообщений из 49, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Юникод в базе без конвертации в приложении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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