powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Еще вопросик
14 сообщений из 14, страница 1 из 1
Еще вопросик
    #32431674
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно еще вопросик? Имеется таблица:
PIN SMALLINT NOT NULL,
USER_NAME VARCHAR(10) CHARACTER SET WIN1251,
USER_PASSWORD VARCHAR(10) CHARACTER SET WIN1251,
LAST_NAME VARCHAR(30) CHARACTER SET WIN1251,
FIRST_NAME VARCHAR(30) CHARACTER SET WIN1251,
MIDDLE_NAME VARCHAR(30) CHARACTER SET WIN1251,
IS_REMOVED CHAR(1) CHARACTER SET WIN1251,
PRIMARY KEY (PIN));

В таблице есть данные на одного человека
После выполнения запроса: insert into User_Security values (1108,'','','','','',''), то
результат запроса select * from User_Security
выглядит так:

PIN USER_NAME USER_PASSWORD LAST_NAME FIRST_NAME MIDDLE_NAME IS_REMOVED
====== ========== ====================== ============ =============== ================== ==========

1123 <null> brashpil Космакова Надежда Владимировна N
1108
А, если я пытаюсь выполнить следующий запрос:
insert into User_Security values (1108,'','6238','Никифорцев','Иван','Валерьевич','')
то выдается след. ошибка:
Statement failed, SQLCODE = -802
arithmetic exception, numeric overflow, or string truncation
-Cannot transliterate character between character sets

Я знаю, что такой запрос нормально работал бы в Access, а как его правильно написать в InterBase?
...
Рейтинг: 0 / 0
Еще вопросик
    #32431708
M.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
M.
Гость
PIN SMALLINT NOT NULL,
USER_NAME VARCHAR(10) CHARACTER SET WIN1251,
USER_PASSWORD VARCHAR(10) CHARACTER SET WIN1251,
LAST_NAME VARCHAR(30) CHARACTER SET WIN1251,
FIRST_NAME VARCHAR(30) CHARACTER SET WIN1251,
MIDDLE_NAME VARCHAR(30) CHARACTER SET WIN1251,
IS_REMOVED CHAR(1) CHARACTER SET WIN1251,
PRIMARY KEY (PIN));


Интересно, а что будет если взапросе явно указывать имена полей
Insert into User_Security(pin, USER_NAME,....etc.,IS_REMOVED) values
("your values")
...
Рейтинг: 0 / 0
Еще вопросик
    #32431721
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
insert into User_Security (PIN,USER_NAME,USER_PASSWORD, LAST_NAME, FIRST_NAME,MIDDLE_NAME,IS_REMOVED) values (1108,'','6238','Никифорцев','Иван','Валерьевич','')
та же ошибка:
Statement failed, SQLCODE = -802
arithmetic exception, numeric overflow, or string truncation
-Cannot transliterate character between character sets
...
Рейтинг: 0 / 0
Еще вопросик
    #32431741
Owl_UA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего в параметрах соединения с сервером указана кодировка HE WIN1251 или же вообще не указана; поэтому, когда пытаемся вставить в поля с 1251-кодировкой символы из другой кодировки, оно и ругается.
...
Рейтинг: 0 / 0
Еще вопросик
    #32431775
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
session->Advanced Settings->Cрaracter Set On:WIN1251. Это я сразу указала
...
Рейтинг: 0 / 0
Еще вопросик
    #32431777
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя, если все данные, которые были на русском, написать по-английски, все работает ижеально
...
Рейтинг: 0 / 0
Еще вопросик
    #32431779
Owl_UA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за клиент?
...
Рейтинг: 0 / 0
Еще вопросик
    #32431784
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ISQL Version: WI-V5.5.0.742
InterBase/x86/Windows NT (access method), version "WI-V5.6.0.29"
on disk structure version 9.1
...
Рейтинг: 0 / 0
Еще вопросик
    #32431792
Owl_UA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, то есть указывается соединение с кодировкой 1251, но работа идет из командной строки, где по-моему кодировка ср866... Проверь все-таки, просто эта ошибка вылазит всегда, когда напутано с кодировками...
...
Рейтинг: 0 / 0
Еще вопросик
    #32431797
ЮВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как выдается сообщение

-Cannot transliterate character between character sets

то, возможно, не задан масcив перекодировки и имя кодировки, как, напрмер, в других СУБД:

CREATE [OR REPLACE] TRANSLATION <имя трансляции>
FOR <имя исходной кодировки>
TO <имя целевой кодировки>
EXTERNAL (<массив трансляции>)

SET DATABASE DEFAULT CHARACTER SET <имя кодировки>

авторЯ знаю, что такой запрос нормально работал бы в Access, а как его правильно написать в InterBase?

Возможно, в Access по умолчанию используется именно тот массив перекодировки, какой нужен для выполненя приведенного запроса, а в Interbase - другой.
...
Рейтинг: 0 / 0
Еще вопросик
    #32431813
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все заработало. В настройках локализации сделали Set As Default на Russia и перегрузились.
...
Рейтинг: 0 / 0
Еще вопросик
    #32431814
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кодовая страница должна указываться ДО соединения с БД, а не после
...
Рейтинг: 0 / 0
Еще вопросик
    #32431815
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю, действительно ли дело было в этом, но ведь помогло
...
Рейтинг: 0 / 0
Еще вопросик
    #32431818
Nadejda K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а, кстати, кодовую страницу я действительно раньше указывала после соединения с БД. СПАСИБО ВАМ ОГРОМНОЕ!!!!!!!!!!!!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Еще вопросик
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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