Форум: "Базы";
Текущий архив: 2003.03.27;
Скачать: [xml.tar.bz2];
ВнизРусский язык в InterBase Найти похожие ветки
← →
a123 (2003-03-05 18:54) [0]C IB столкнулся недавно, по необходимости, и сразу проблема!!!
Что надо сделать чтобы в таблице запоминались слова написаные на русском.Подскажите, пожалуйста. Бьюсь уже второй день :-(
← →
a123 (2003-03-05 19:00) [1]Неужели никто не знает?
← →
Кирилл_ (2003-03-05 19:41) [2]При создании базы надо было указать DEFAULT WINDOWS-1251 или что-то вроде этого.
← →
valery (2003-03-05 19:53) [3]Нужно указывать кодировку при создании БД, а также в компонентах доступа.
1) Пример создания БД
create database "c:\example.gdb" user "SYSDBA" password "masterkey"
page_size = 16384
default character set WIN1251;
2) В компоненте доступа (TDatabase, TIBDatabase etc)
Params.Values["lc_ctype"]:="WIN1251";
← →
Vinni (2003-03-05 21:29) [4]И еще не забыть указать в полях типа VARCHAR COLLATE PXW_CYRL
← →
Johnmen (2003-03-06 00:03) [5]Всем ответившим :
Выставление character set и collate совсем не обязательно для того, чтобы в "таблице запоминались слова написаные на русском" !
← →
a123 (2003-03-06 10:02) [6]А что обязательно?
Так как я это делал, но ничего не выходит...
← →
zacho (2003-03-06 10:06) [7]Смотри http://www.ibase.ru/devinfo/ibrusfaq.htm
← →
Соловьев (2003-03-06 10:11) [8]SET NAMES определяет кодировку используемую для последующих вложений базы данных. Это позволяет ISQL отменить кодировку базы данных по умолчанию.
← →
Johnmen (2003-03-06 10:16) [9]>a123 © (06.03.03 10:02)
>Так как я это делал, но ничего не выходит...
А как делал то ?
← →
a123 (2003-03-06 10:31) [10]1)создал БД:
CREATE DATABASE "C:\flatsmy\db\AFlat.gdb"
user "sysdba"
password "masterkey"
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251
2)создаю таблицу:
CREATE TABLE "ACARDS"
(
"ID_FLAT" INTEGER NOT NULL,
"QTY_ROOM" INTEGER,
"M_ALL" FLOAT,
"M_LIVE" FLOAT,
"ADDRESS" VARCHAR(100) CHARACTER SET WIN1251,
"DATE_UCHET" DATE,
"QTY_PERSON" INTEGER,
"COMMENT" BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET WIN1251,
"DATE_ZAYAV" DATE
PRIMARY KEY ("ID_FLAT")
);
3)В компоненте доступа TIBDatabase etc)
Params.Values
user_name=SYSDBA
lc_ctype=WIN1251
password=masterkey
← →
Johnmen (2003-03-06 10:35) [11]А может просто не стоит использовать 3 диалект ? :)))
Или в нем есть жесткая(жестокая ? :)) необходимость ?
← →
a123 (2003-03-06 10:37) [12]Пробовал и с первым...
Сейчас еще попробую...
← →
Max Zyuzin (2003-03-06 10:37) [13]>Johnmen © (06.03.03 10:35)
А при чем тут 3-й диалект???
← →
Johnmen (2003-03-06 10:55) [14]>Max Zyuzin © (06.03.03 10:37)
Ну как причем... Попробуй поработать с русск.кодировкой в нем...
Если будет успех сообщи, обменяемся впечатлениями...:)))
← →
zacho (2003-03-06 11:02) [15]
> Johnmen © (06.03.03 10:55)
Работаю давно, все нормально. Что я неправильно делаю ?
← →
Max Zyuzin (2003-03-06 11:13) [16]>Johnmen © (06.03.03 10:55)
Ты знаешь, я тоже работаю, и проблем пока не наблюдаю... давай менятся впечатлениями :)))
← →
Johnmen (2003-03-06 11:13) [17]>zacho © (06.03.03 11:02)
>Работаю давно, все нормально. Что я неправильно делаю ?
Все правильно делаешь, если все нормально :)
А как делаешь - сиё мне неведомо...
← →
myor (2003-03-06 11:19) [18]указывал при создании бд win1251- не срабатывало.
указал none- заработало.
← →
a123 (2003-03-06 11:22) [19]"указал none- заработало."
Это интересно...
← →
a123 (2003-03-06 11:38) [20]Ура!!!! Заработало!!! :-)
Всем большое спасибо!
В моем случае сработал вариант:
"myor © (06.03.03 11:19)
указывал при создании бд win1251- не срабатывало.
указал none- заработало"
Но как это объяснить?....:-)
← →
a123 (2003-03-06 11:40) [21]тоесть я нигде, нигде не указывал win1251...
← →
Johnmen (2003-03-06 11:52) [22]И я тоже никогда и нигде не указывал, и все замечательно...
А подробности см. в ссылке zacho © (06.03.03 10:06)
← →
zacho (2003-03-06 11:53) [23]
> Johnmen © (06.03.03 11:13)
> А как делаешь - сиё мне неведомо...
Обычно :-) А какие проблемы должны быть-то ? Правда могу сказать, что по русски не таблицы, не поля обзывать не пробовал, может проблемы в этом случае возникают ? Или в версии сервера дело ? У меня Yaffil SS 854
> a123 © (06.03.03 11:38)
Почитай все-таки http://www.ibase.ru/devinfo/ibrusfaq.htm
И как именно не работало-то? Ошибку выдавало или что?
← →
valery (2003-03-06 12:16) [24]Если не указывать кодировку при создании/подключении, то будут проблемы с сортировкой по строковым полям с кириллицей
Запросы типа
select * from acards order by address
будут возвращать некорректно отсортированный набор данных
Именно из этих соображений кодировку стоит указывать всегда
← →
a123 (2003-03-06 12:16) [25]Да, ошибка при попытке запомнить такую запись
или отобразить таблицу с русскими символами:
Project Aflat.exe raised exception EIInterBaseError with message "arithmetic exception, numeric overflow? or string truncation
Cannot transliterate charecter between charecter sets"/ Proces stopped/ Use Step or Run to continue.
← →
Johnmen (2003-03-06 12:47) [26]>zacho © (06.03.03 11:53)
>А какие проблемы должны быть-то ?
Проблемы не должны быть ...:)))
Тогда что здесь не так ? (FB)
SET SQL DIALECT 3;
CREATE DATABASE "..." PAGE_SIZE 4096 DEFAULT CHARACTER SET WIN1251;
CREATE TABLE "T1"
( "C1" VARCHAR(12) CHARACTER SET WIN1251,
"C2" VARCHAR(12) CHARACTER SET WIN1251 COLLATE PXW_CYRL);
При попытке в IBConsole сделать
INSERT INTO "T1" ("C1","C2") VALUES ("Вася","Петя");
возникает известная ошибка...
Может я туплю, может не догоняю, но ошибка имеет место быть...
← →
zacho (2003-03-06 13:03) [27]
> Johnmen © (06.03.03 12:47)
Только что попробовал:
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE "LOCALHOST:C:\Test.gdb"
USER "SYSDBA" PASSWORD "1"
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;
CREATE TABLE "TeSt2" (
"Ttttdddeee" VARCHAR(30)
);
При попытке сделать
INSERT INTO "TeSt2" ("Ttttdddeee") VALUES ("Вася")
все нормально !
SELECT, UPDATE и т.д. - тоже Ok !
Правда, IBConsole у меня нет, все это делал в IBExpert.
Так что у тебя похоже имеет место быть баг в IBConsole или в FB.
А на другой сборке FB или из чего-нибудь более другого, чем IBConsole, не пробовал ?
← →
serg_ (2003-03-06 21:21) [28]Да, есть такая проблема. Я ее решил так:
создаю базу с DEFAULT CHARACTER SET WIN1251
создаю таблицы, пробую заполнять русскими буквами - не получается!
Делаю Unregister базы, затем Register и выбираю при этом WIN1251.
ВСЕ РАБОТАЕТ!!!
← →
Johnmen (2003-03-06 21:37) [29]>serg_ (06.03.03 21:21)
Вот это уже интересно ! Получается, что баг в IBConsole...
Благодарю за помощь.
← →
zacho (2003-03-06 22:10) [30]
> Вот это уже интересно ! Получается, что баг в IBConsole...
Еще одна причина не пользоваться консолью :-)
← →
Johnmen (2003-03-06 23:58) [31]>zacho © (06.03.03 22:10)
Согласен, но привычка сильнее. Хотя и IBExpert тоже использую.
← →
myor (2003-03-07 10:26) [32]интересный вариант unregister/register. обязательно попробую.
← →
Anatoly Podgoretsky (2003-03-07 10:32) [33]Johnmen © (06.03.03 23:58)
Может ты это не сделал в консоли SET NAMES WIN1251?
← →
Johnmen (2003-03-07 10:43) [34]>Anatoly Podgoretsky © (07.03.03 10:32)
Делал ! И не только это, а еще и полную кучу изворотов...
А вот unregister/register действительно помогло !!!
Хотя я придерживаюсь мнения, что никаких кодировок вообще не надо определять. Всегда делал none и проблем не было. А тут просто решил побаловаться с 3 диал-ом...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.012 c