|
|
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
На сколько я знаю, то в сама среда 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-компонентам не приходилось выполнять конвертацию данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:08:27 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
И вопрос в догонку. Кто-нибудь переводил базу из ANSI (Win-1251) на юникод? На сколько это сложно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:10:43 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11например, в Firebird Вот как раз с Firebird - обломись, она не умеет UTF-16. Как и подавляющее большинство других СУБД. Поэтому все компоненты доступа обычно конвертируют текст в UTF-8. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:16:01 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
бери Лазаря. у него utf-8. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:20:56 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11, я так думаю - что через csv или аналог проще всего. мы у себя решили не возиться с конвертацией, а поддержали обе версии. новые базы у нас идут уже в utf, старые работают в 1251. всё работает без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:36:25 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:36:58 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
utf8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:37:22 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovX11например, в Firebird Вот как раз с Firebird - обломись, она не умеет UTF-16. Как и подавляющее большинство других СУБД. Поэтому все компоненты доступа обычно конвертируют текст в UTF-8. ничёси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:37:24 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
makhaonX11, я так думаю - что через csv или аналог проще всего. мы у себя решили не возиться с конвертацией, а поддержали обе версии. новые базы у нас идут уже в utf, старые работают в 1251. всё работает без проблем Т.е. надо поддерживать два типа базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:38:32 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Собственно, как kdv и пишет: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1117075&msg=16608851 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:38:36 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11, если баз довольно много и они большие - то проще так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:39:12 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
чарсет базы ищу так: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:42:54 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
makhaonX11, если баз довольно много и они большие - то проще так. Нет. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:43:44 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11пока читаю http://www.sql.ru/forum/1117075/izmenit-kodirovku-bazy Брось. Читай http://www.ibase.ru/unicode_faq/ Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 15:02:29 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Читаю. Спасибо. Я правильно понимаю, что если размер страницы 4096, то размер VARCHAR должен быть 1024? А то ошибка: Undefined name. Dynamic SQL Error. SQL error code = -204. Data type unknown. Implementation limit exceeded. COLUMN STR32K. вот здесь: Код: sql 1. Или это касается только индексов, где их размер должен быть 1/4 от размера страницы? Просто ошибка даже там, где VARCHAR(8192). Вообще, какой размер страницы рекомендуется для UTF8? В разделе "Длина строковых столбцов и изменение ее размера" я не нашёл, как правильно рассчитать и указать размер строго поля/домена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 15:32:14 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
все строки, насколько я помню, занимают ровно в 4 раза больше места (по байтам). вот из этого можешь исходить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 15:37:23 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
авторVARCHAR(8192) потому что максимальный размер VARCHAR в ansi не 32768 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 15:39:57 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
здесь https://firebirdsql.org/manual/ru/migration-mssql-data-types-ru.html написано, что Символьные данные переменной длины (не-Unicode). Максимальная длина 8000 символов. СУБД Firebird способна хранить до 32765 символов. т.е. максимальная длина varchar unicode будет 8191? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 15:45:44 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
makhaonавторVARCHAR(8192) потому что максимальный размер VARCHAR в ansi не 32768 да, ошибочка :) 32764 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 15:46:18 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
"Подчистил" длинные строки. Скрипт выполнился успешно. Буду проверять. Всем спасибо за подсказки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 16:29:05 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
IBExpert теперь при открытии таблицы выводит ошибку: block size exceed implementation restriction Есть какие-то ограничения на общий размер текстовых полей таблицы? Например, если в таблице есть 2-4 поля varchar общим размером более 8191. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2017, 10:07:44 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийбери Лазаря. у него utf-8. это пока что. НАсколько я в курсе, там тоже utf-16 планируется в обозримом будущем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2017, 10:36:56 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Док, У лазаря utf8 не везде. В линуксе - utf8, в винде - 1251. Собираются вроде бы на 'обычный' юникод переходить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2017, 14:23:18 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
11.10.2017 14:23, makhaon пишет: > В линуксе - utf8, в винде - 1251. с чего вдрук?! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2017, 14:28:47 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Насколько я помню, до было так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2017, 14:46:00 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
11.10.2017 14:46, makhaon пишет: > Насколько я помню, до было так. в эпоху Tsarya Goroha Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2017, 14:53:11 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Странно, на BOM до сих пор жалуются, как так? http://freepascal.ru/forum/viewtopic.php?f=5&t=25496 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 20:10:26 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
12.10.2017 20:10, makhaon пишет: > Странно, на BOM до сих пор жалуются, как так? BOM нахер не нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2017, 14:40:39 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11Есть какие-то ограничения на общий размер текстовых полей таблицы? да, 64к на размер записи. https://firebirdsql.org/en/firebird-technical-specifications/ Вообще должно было выругаться при создании таблицы или добавлении столбцов сверх лимита. Вам зачем такие конские строки? Может, лучше blob? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 17:01:42 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
kdvВам зачем такие конские строки? Может, лучше blob? Да, наверное blob было бы правильней. В таких строках могут храниться разные настройки, параметры, список каких-нибудь параметров/настроек и т.д. Наверное переделаю, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 17:10:12 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11, настройки??? если бы там что-то бинарное было, так тогда надо не юникод, а OCTETS использовать. И то, он "плохо читается" клиентскими библиотеками, если туда 0 попадает, а строка копируется в си-шную. Вот если в xml настройки хранить, тогда да, строка, но так практически никто не делает, хранят в блобах. Настройки - это совершенно вторичная информация, к которой обращение обычно идет только для конкретной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 17:29:26 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Например, у компонентов DevExpress есть замечательный TcxCheckList, который хранит данные в виде чисел с запятыми "19,17,4,18", а названия потом ведь тоже нужно вывести. Сколько там будет символов - ф.з. А есть древовидные структуры. И нужно вывести весь путь с самого нижнего узла и до корня. И сколько там будет символов - ф.з. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 17:38:53 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
kdvнастройки??? Перепроверил. Я загоняю настройки в Stream и потом сохраняю всё-таки в blob. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 17:39:45 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11, обычно пишут не "ф.з.", а х.з. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 20:18:56 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
kdv, да ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 21:01:58 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
makhaonX11, я так думаю - что через csv или аналог проще всего. мы у себя решили не возиться с конвертацией, а поддержали обе версии. новые базы у нас идут уже в utf, старые работают в 1251. всё работает без проблем. Не знаю, как у вас получилось, но я вот на работающем приложении пытался подключиться к базе и получить данные. Delphi XE3, FibPlus. Project raised exception class EDatabaseError with message 'queryUsers: Type mismatch for field 'Пользователь', expecting: String actual: WideString '. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2017, 15:40:08 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11, На IBX'ах, меняю чарсет соединения, этого почти достаточно, было несколько тонких мест в запросах. Как детектировать - написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2017, 16:56:53 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
kdvX11, обычно пишут не "ф.з.", а х.з. Ох, недаром тебя "граммар наци" прозвали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2017, 17:10:06 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
DarkMaster, да никто не пишет "ф.з." Потому что ФЗ - это федеральный закон :-) X11Project raised exception class EDatabaseError with message 'queryUsers: Type mismatch for field 'Пользователь', expecting: String actual: WideString'. странно. В IBX XE3 со стороны приложения уже все должно быть юникодное, независимо от кодировки соединения - 1251 или utf8. Может, в датасете остались явно определены столбцы, а проект перенесен из неюникодной Дельфи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:16:56 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
kdvВ IBX XE3 У МЕНЯ: X11Delphi XE3, FibPlus. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:29:06 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
kdvМожет, в датасете остались явно определены столбцы, а проект перенесен из неюникодной Дельфи? Да, когда-то давно было на D2007. Уже больше года прошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:29:56 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
19.10.2017 12:29, X11 пишет: > У МЕНЯ: > X11 > Delphi XE3, FibPlus . их недавно хоронили. порвали два баяна. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 13:42:16 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11... А есть древовидные структуры. И нужно вывести весь путь с самого нижнего узла и до корня. И сколько там будет символов - ф.з. Еще одна причина "так не делать". Я про любителей иерархические структуры в БД ч/з анус строить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 14:46:54 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийих недавно хоронили. порвали два баяна. на сколько я знаю, то для Berlin даже есть, для Tokyo не встречал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 16:26:06 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11Мимопроходящийих недавно хоронили. порвали два баяна. на сколько я знаю, то для Berlin даже есть, для Tokyo не встречал Я проверил - для Токио ставится без бубнов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 16:29:58 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11Project raised exception class EDatabaseError with message 'queryUsers: Type mismatch for field 'Пользователь', expecting: String actual: WideString '. В свете этих событий, хочу спросить. Если я в DFM просто заменю TpFIBStringField на TpFIBWideStringField? Или даже не пытаться, а создавать все поля заново? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 08:53:44 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
X11Если я в DFM просто заменю TpFIBStringField на TpFIBWideStringField? Поменял через Notepad++. Открыл проект. Перекомпилировал. Без ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 15:14:16 |
|
||
|
Юникод в базе без конвертации в приложении
|
|||
|---|---|---|---|
|
#18+
В дизайне НД открываются без ошибок. А во время работы приложения получаю исключение в момент Код: pascal 1. tableUsers: Type mismatch for field 'UName', expecting: WideString actual: String. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 15:52:17 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041686]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
97ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 513ms |

| 0 / 0 |
