powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cannot transliterate character between character sets.
48 сообщений из 48, показаны все 2 страниц
Cannot transliterate character between character sets.
    #32073207
Камрады!!!
суть проблемы следующая
хочу в таблицу вставить данные
посредством:
insert into "TRAFFICTYPE"
values (6,'Ляля тополя','8464122');


на что Интербейза отвечает мне:
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets.


ах да вот ышо структура таблицы какая
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE TABLE TRAFFICTYPE (
ID INTEGER NOT NULL,
TRAFFICTYPENAME VARCHAR(50),
"TrafficTypeCode" CHAR(7)
);



Поможите люди добрые справица с этой инсинуацией
Заранее благодарен,
Четыреста третий фарбидден
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #32073261
denipod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создавать так:
CREATE TABLE TRAFFICTYPE (
ID INTEGER NOT NULL,
TRAFFICTYPENAME VARCHAR(50) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
"TrafficTypeCode" CHAR(7)
);

COLLATE PXW_CYRL - не обязательно

Вставить так:
insert into "TRAFFICTYPE"
values (6,_win1251'Ляля тополя','8464122');

Но лучше при подключении указывать где-нибудь
CHARACTER SET WIN1251
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Cannot transliterate character between character sets.
    #39727684
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтоб не плодить аналогичные темы...

Есть БД на ФБ 3.0 с кодировкой UTF8 (сама, и все char/varchar поля во всех таблицах).
Есть приложение написанное на Delphi, при подключении к базе указываю чарсет как UTF8.
Есть клиент, с русской Windows 10, который не может подключиться к базе, ловит ошибку
Invalid connection string
Cannot transliterate character between character sets.


Хотя на других (моих) компьютерах (win 7, server 2008, win xp) программа подключается и работает так как надо.
Куда копать?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727686
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim WooКуда копать?

Нелатинские буквы в пути к базе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727708
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
16 лет!!!
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727739
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напомните номер тикета, вроде был такой.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727748
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim Woo Invalid connection string
Cannot transliterate character between character sets.
doc\README.connection_string_charset.txt
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727868
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Правильно ли я понял суть проблемы: кодировка машины клиента не совпадает с кодировкой сервера, по этому передаваемый connection string конвертится и дает ошибку.

Не могли бы вы по-русски объяснить, как и где мне указать isc_dpb_utf8_filename при коннекте?

P.S.
Проект написан на Delphi, коннект к базе через IBDatabase + IB компоненты.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727875
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim WooНе могли бы вы по-русски объяснить, как и где мне указать isc_dpb_utf8_filename при коннекте?

Забей, это не работает ни в одной из существующих версий Firebird. Просто не клади базу в
каталоги с нелатинскими именами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727882
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну так база и так на сервере лежит в каталоге ТОЛЬКО с латинскими буквами, но ошибка все равно возникает.

Приведу кусок кода, может быть вам чем-то поможет...

Есть ini-файл, в котором прописан путь к базе.
[BASE]
path = xxx.xxx.xxx.xxx:\DataBase\MainDB.fdb

Я этот путь достаю и передаю в Params у IBDatabase.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
var DBPath : string;

DBPath := GetDBPath();
with myDatabase do
begin
	Params.Clear;
	DatabaseName := DBPath;
	Params.Add('user_name=' + Login.Text);
	Params.Add('password=' + Password.Text);
	Params.Add('lc_ctype=UTF8');
	LoginPrompt := False;
	Connected := True;
end;


На моменте Connected вылетает Exception с указанной ошибкой...
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727889
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim WooНа моменте Connected вылетает Exception с указанной ошибкой...

Значит ищи какую-то хрень в ON CONNECT/ON START TRANSACTION триггерах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727897
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, ты из .ini "криво" читаешь. Посмотри в отладчике, чему DBPath равен.
Код: pascal
1.
	DatabaseName := DBPath;
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727900
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фэйтл Эра,

Путь читается верно.
Я же говорю, у меня на 3-х разных ОС работает, а у пользователя с Win10 - нет.

Значит ищи какую-то хрень в ON CONNECT/ON START TRANSACTION триггерах.
А как посмотреть их? В IBExpert такое не вижу.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727910
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
upd

Запустил виртуальную OS с пользователем "Администратор" - программа выдала:
авторInvalid connection string
Cannot transliterate character between character sets.

В ней же создал пользователя "Admin" - программа заработала как надо.

У клиента имя пользователя оказалось тоже на кириллице. Что это? И как это фиксить?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727914
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim Woo,

значит это подтверждает предположение Димы о том что ты в ON CONNECT какую-то фигню написал. Скорее всего с обращение в MON$. Помниться был раньше такой баг
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727916
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но в ON CONNECT я ничего не писал, более того, я даже не знаю как и где это посмотреть. =)
База делалась при помощи IBExpert, соответственно и работаю с ней через нее же.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727929
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trusted auth?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727932
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim WooПравильно ли я понял суть проблемы: кодировка машины клиента не совпадает с кодировкой сервера, по этому передаваемый connection string конвертится и дает ошибку.Не совсем правильно.
Там же написано, что isc_dpb_utf8_filename указывает на то что все строки в DPB - в utf8:readmeThese rules are now valid for string DPB items too.

Tim WooНе могли бы вы по-русски объяснить, как и где мне указать isc_dpb_utf8_filename при коннекте?Я понятия не имею, как твои компоненты заполняют DPB перед аттачем.

Tim WooЗапустил виртуальную OS с пользователем "Администратор" - программа выдала:
авторInvalid connection string
Cannot transliterate character between character sets.Так ты trusted auth используешь ?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727933
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗабей, это не работает ни в одной из существующих версий Firebird.Не устал пальцем в небо тыкать ?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727957
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНе устал пальцем в небо тыкать ?

Не хочу тебя расстраивать, но грабли вы зарыли совсем не в небе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39727976
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim Woo,

еще осталось выяснить, Дельфи юникодная или нет (2009 и выше или нет).
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728019
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТак ты trusted auth используешь ?
Нет.
Я говорю о том, что если имя учетной записи самой ОС содержит не ANSII символы (в моем случае "Администратор"), то при запуске приложения клиента при подключении к базе указав логин/пароль SYSDBA/masterkey возникает ошибка.
А вот если создать в ОС учетку с именем например Admin, и при подключении к базе указав логин/пароль SYSDBA/masterkey все работает замечательно.

авторДельфи юникодная или нет (2009 и выше или нет).
Delphi 10.1 Berlin
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728023
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim Woo,

покажи в каком порядке плагины аутентификации перечислены
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728036
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
firebird.conf
авторAuthServer = Legacy_Auth, Srp, Win_Sspi
AuthClient = Legacy_Auth, Srp, Win_Sspi

Вы про это?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728039
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можешь попробовать клиента от 2.5 ?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728040
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim Woo,

ну хорошо. Создаем пустую базу в utf8, и пишем примитивное приложение, где только коннект к БД теми же компонентами и настройками.
Запускаем с этого же компьютера. Ошибка есть?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728049
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladМожешь попробовать клиента от 2.5 ?И, отдельно, попробовать коннект с помощью isql
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728057
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FB 2.5 -> результат тот же
isql -> результат тот же

Создал локально базу в UTF8, накидал приложение в дельфи.
База подключается из-под обоих учеток ОС (Администратор и Admin).

Делаю транспортный бэкап, кидаю эту базу на сервер, распаковываю бэкап и:
Администратор -> инвалид коннекшн (везде: isql, IBExpert, delphi)
Admin -> подключается легко.

-_-
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728060
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim WooСоздал локально базу в UTF8, накидал приложение в дельфи.
База подключается из-под обоих учеток ОС (Администратор и Admin).Тут речь о работе на одном хосте, так ?

Tim WooДелаю транспортный бэкап, кидаю эту базу на сервер, распаковываю бэкапБекап тут был не нужен, ну да ладно.
Кто такой "сервер" в этом предложении ?

Какая локаль у машины с проблемным клиентом и какая - у машины, где запущен сервер Firebird ?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728067
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При размещении базы на localhost все работает.
При размещении базы на удаленном компьютере (сервер на MS Server 2008 с FB 3.0.4) работает только у Admin.
Клиент и сервер находятся в разных локальных сетях.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728081
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
upd

Локали клиента и сервера различались. (Россия и USA)
Поменял на сервере тоже на Россию, все заработало, по крайней мере у меня на виртуалке...
Буду теперь ждать ответа от проблемного клиента, что он скажет.
Может быть у кого еще теперь отвалится программа из-за локали :D
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728097
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim WooПоменял на сервере тоже на Россию, все заработалоЭто и была причина
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728098
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я и сказал: Firebird не умеет работать с не-ANSI именами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728101
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКак я и сказал: Firebird не умеет работать с не-ANSI именами.И это полуправда. Как это обычно и бывает с твоими "откровениями".
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728133
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У клиента тоже заработало!
Всем огромное спасибо за помощь!
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728143
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim Woo,

но что это было, так и не выяснили.
Какой ТОЧНО путь к базе и имя базы?
А то вот это
path = xxx.xxx.xxx.xxx:\DataBase\MainDB.fdb
явно с ошибкой написано.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728151
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvно что это было, так и не выяснили.Выяснили - имя пользователя OS.

Начиная с fb3, fbclient переводит его в utf8 перед тем как отправить по сети в момент коннекта.
Затем сервер транслирует его из utf8 в системный чарсет. Тут и возникает ошибка транслитерации,
если имя содержит символы, отсутствующие в системном чарсете сервера.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728158
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЗатем сервер транслирует его из utf8 в системный чарсет.

Интересно зачем он это делает. Я понимаю, что старый код прошлого века перепахивать это
прорва работы, но писать новый код без оглядки на юникодность...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728163
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovhvladЗатем сервер транслирует его из utf8 в системный чарсет.

Интересно зачем он это делает. http://tracker.firebirdsql.org/browse/CORE-3943

Dimitry SibiryakovЯ понимаю, что старый код прошлого века перепахивать это
прорва работы, но писать новый код без оглядки на юникодность...В где ты тут нашёл новый код ?
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728183
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad http://tracker.firebirdsql.org/browse/CORE-3943

Поля таблиц мониторинга разве не с unicode_fss объявлены в тройке (utf-8 в четвёрке)?..

hvladВ где ты тут нашёл новый код ?

В таблицах мониторинга. Они появились только в этом веке. Как и код, который принудительно
преобразует все строки в DPB в utf-8 перед отправкой на сервер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728203
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

про мониторинг - не ко мне вопрос.
Про строки в DPB - здесь другой случай, из прошлого века.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728223
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladПро строки в DPB - здесь другой случай, из прошлого века.

Э, нет, в прошлом веке они вообще не интерпретировались никак. А вот начиная с 2.5 клиент
начал некоторые тэги принудительно конвертировать в utf-8, так что сервер начал получать
sys_user_name исключительно в utf-8 задолго до того, как в MON$ATTACHMENTS отрос
MON$REMOTE_OS_USER. Это, конечно, тоже уже чертовски давно, но и далеко не прошлый век.
Отмазка насчёт legacy code не прокатит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728230
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

CNCT_user не передаётся по сети с DPB.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728378
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovсервер начал получать ... исключительно в utf-8
никакой исключительностью тут не пахнет. С сервером может разговаривать как старый fbclient, так и вообще не fbclient. Которые могут спокойно пихать все в системной кодировке.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728553
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrникакой исключительностью тут не пахнет. С сервером может разговаривать как старый
fbclient, так и вообще не fbclient. Которые могут спокойно пихать все в системной кодировке.

А не происходит ли это вследствие отсутствия опубликованной чёткой спецификации протокола?..
Поддержка 2.5 в котором появился utf-8 уже подходит к концу, а более старые версии и вовсе
давно дропнуты. Какой смысл говорить о них?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728858
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

я говорю о клиентах, а не о сервере. Их много, куча из них легаси (включая старые версии Jaybird и .NET), ничего не знают о поддержке UTF8 и никогда не будут его пользовать.
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728869
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrя говорю о клиентах, а не о сервере.

И я говорю о клиентах. При выходе тройки их всех уже обломали, поставив WireCrypt в
Required по дефолту на сервере. Осталось сделать ещё маленький шажок и отбить поддержку
протоколов из 2.1 и старше, чтобы "спокойно пихающие" шли лесом читать спецификацию, в
которой чётко написано "такие-то строки передаются на сервер в кодировке utf-8".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Cannot transliterate character between character sets.
    #39728875
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ты видишь разницу в поставили по дефолту, но можно изменить и вырубили совсем на фиг?
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cannot transliterate character between character sets.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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