Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
14-88168
Danger
2003-03-10 21:41
2003.03.27
Можно ли заставить написанное на Дельфи работать как скрипт??


7-88265
SN
2003-01-30 22:30
2003.03.27
ПРОБЛЕМА С XP


1-87946
CD
2003-03-17 13:34
2003.03.27
Проблема с положением компонент


6-88110
harismatik
2003-02-05 15:39
2003.03.27
Прием файла по HTTP протоколу


1-87949
ArtyomW`
2003-03-17 18:28
2003.03.27
Программное нажатие кнопки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский