powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / insert ... value(_win1251....) Опять кодировки
8 сообщений из 8, страница 1 из 1
insert ... value(_win1251....) Опять кодировки
    #32247451
Alex S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Тема избитая, но ни одно из прочитанных мною решений не помогло.

При добавлении записи с русскими буквами выдается ошибка "Cannot
transliterate character between character sets (HY000)". При вводе
цифр или английских букв все нормально добавляется. С Firebird работаю
через IBExpert. Везде, где можно, выставленна win1251 и Russian_charset.
В программе (Clarion 5.5) добавляю запись вручную выражением типа

agent{prop:sql}='insert into agent (name) values (''Проба'')'

Однако, если написать так

agent{prop:sql}='insert into agent (name) values (_win1251 ''Проба'')'

то все нормально, но ведь так не должно быть. Получается, что Файербирду необходимо явно указывать кодировку при каждом добавлении/изменении?
Или я чего не понимаю?
...
Рейтинг: 0 / 0
insert ... value(_win1251....) Опять кодировки
    #32247498
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А подключился ты с указанием кодировки?
...
Рейтинг: 0 / 0
insert ... value(_win1251....) Опять кодировки
    #32247501
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не проще указывать при конекте использовать параметр: lc_ctype=WIN1251
...
Рейтинг: 0 / 0
insert ... value(_win1251....) Опять кодировки
    #32247612
Alex S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я и хочу узнать, как при подключении указать кодировку.

lc_ctype=WIN1251 - это из Юниксов/Линуксов. Где его указывать при коннекте? У меня ХР/98.

DSN=mybase;DRIVER=Firebird/Interbase(r) driver;DBNAME=C:\mybase\mybase.gdb;UID=SYSDBA;PWD=masterkey;lc_ctype=WIN1251 - так?
...
Рейтинг: 0 / 0
insert ... value(_win1251....) Опять кодировки
    #32247618
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем ты к базе подключаешся? Средствами клариона, которого я в глаза не видел, или чем?
...
Рейтинг: 0 / 0
insert ... value(_win1251....) Опять кодировки
    #32247830
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lc_ctype=WIN1251 - Параметр в TIBDataBase и других компонентов (Delphi).
Если используется что-то другое, то там нужно указывать CHARSET=WIN1251 (или что-то подобное).
...
Рейтинг: 0 / 0
insert ... value(_win1251....) Опять кодировки
    #32247866
Alex S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кларион сам генерит строку коннекта, но я могу добавлять/изменять параметры. В нашем случае он сгенерил DSN=mybase;DRIVER=Firebird/Interbase(r) driver;DBNAME=C:\mybase\mybase.gdb;UID=SYSDBA;PWD=masterkey

После добавления lc_ctype=WIN1251 строка коннекта не изменилась.
...
Рейтинг: 0 / 0
insert ... value(_win1251....) Опять кодировки
    #32250100
Alex S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все-таки, где узнать или кто расскажет про строку подключения?
Везде, где я читал, одно и то же: CONNECT ["]<filespec>["] [USER "username" [PASSWORD "password"]];
Чтобы указать кодировку, нужно перед коннектом написать инструкцию SET NAMES WIN1251, но когда я отсылаю это серверу, он ругается на NAMES.
Работаю через ODBC - это имеет значение?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / insert ... value(_win1251....) Опять кодировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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