|
|
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
Привет! Тема избитая, но ни одно из прочитанных мною решений не помогло. При добавлении записи с русскими буквами выдается ошибка "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 ''Проба'')' то все нормально, но ведь так не должно быть. Получается, что Файербирду необходимо явно указывать кодировку при каждом добавлении/изменении? Или я чего не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 13:09 |
|
||
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
А подключился ты с указанием кодировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 13:33 |
|
||
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
А не проще указывать при конекте использовать параметр: lc_ctype=WIN1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 13:34 |
|
||
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
Вот я и хочу узнать, как при подключении указать кодировку. lc_ctype=WIN1251 - это из Юниксов/Линуксов. Где его указывать при коннекте? У меня ХР/98. DSN=mybase;DRIVER=Firebird/Interbase(r) driver;DBNAME=C:\mybase\mybase.gdb;UID=SYSDBA;PWD=masterkey;lc_ctype=WIN1251 - так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 14:28 |
|
||
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
А чем ты к базе подключаешся? Средствами клариона, которого я в глаза не видел, или чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 14:32 |
|
||
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
lc_ctype=WIN1251 - Параметр в TIBDataBase и других компонентов (Delphi). Если используется что-то другое, то там нужно указывать CHARSET=WIN1251 (или что-то подобное). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 16:10 |
|
||
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
Кларион сам генерит строку коннекта, но я могу добавлять/изменять параметры. В нашем случае он сгенерил DSN=mybase;DRIVER=Firebird/Interbase(r) driver;DBNAME=C:\mybase\mybase.gdb;UID=SYSDBA;PWD=masterkey После добавления lc_ctype=WIN1251 строка коннекта не изменилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 16:23 |
|
||
|
insert ... value(_win1251....) Опять кодировки
|
|||
|---|---|---|---|
|
#18+
И все-таки, где узнать или кто расскажет про строку подключения? Везде, где я читал, одно и то же: CONNECT ["]<filespec>["] [USER "username" [PASSWORD "password"]]; Чтобы указать кодировку, нужно перед коннектом написать инструкцию SET NAMES WIN1251, но когда я отсылаю это серверу, он ругается на NAMES. Работаю через ODBC - это имеет значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32247612&tid=1580052]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 459ms |

| 0 / 0 |
