Текущий архив: 2006.09.24;
Скачать: CL | DM;
Вниз
Interbase и кодировка при первой записи Найти похожие ветки
← →
Fishka (2006-07-26 14:13) [0]Создаю программно базу:
IBDataBase1.Params.Add("USER "SYSDBA"");
IBDataBase1.Params.Add("PASSWORD "masterkey"");
IBDataBase1.Params.Add("default character set WIN1251");
IBDataBase1.SQLDialect:=1;
IBDataBase1.CreateDatabase;
База создается. Создаю таблицы - таблицы создаются.
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("create table region");
IBQuery1.SQL.Add("(code_region Integer NOT NULL,");
IBQuery1.SQL.Add("name_region Character (30) Character set WIN1251 NOT NULL UNIQUE COLLATE PXW_CYRL,");
IBQuery1.SQL.Add("primary key (code_region))");
IBQuery1.ExecSQL;
Вношу 1 запись в таблицу. В таблице 2 поля - код и название.
Код формируется с помощью генератора.
Проблема в поле название я не могу внести русские буквы.
Вношу английские, обновляю, затем корректирую на русские.
Почему я не могу сразу вносить русские буквы? И что надо сделать, чтобы решить эту проблему?
← →
Johnmen © (2006-07-26 14:16) [1]После игры с метаданными надо отключиться и подключиться снова с соответствующими параметрами.
← →
Fishka (2006-07-26 15:08) [2]Непонятно......
Database надо сделать disconnect? А по-другому?
Я поподробнее можно?
← →
Johnmen © (2006-07-26 15:14) [3]
> Database надо сделать disconnect?
Да.
← →
Desdechado © (2006-07-26 15:15) [4]По-правильному: база создается отдельно вместе с таблицами и проч.
А работа с данными - отдельно. И не надо винегрет из этого делать.
И по поводу [1] - IB кэширует метаданные только при подключении, поэтому любые их программные изменения в этом кэше не отражаются.
И еще. Помни, что кодировка БД должна совпадать с кодировкой самого коннекта (в свойствах IBDatabase - lc_type)
← →
Fishka (2006-07-26 15:47) [5]Johnmen © (26.07.06 15:14) [3]
Спасибо, но так не хочется этого делать......
Desdechado © (26.07.06 15:15) [4]
Спасибо за ответы, но винегрет, видимо, сделаю, так как это дипломный проект. Пока не вижу другого выхода для диплома ..... Надо и базу создать, если ее нет, и данные ввести, и отчеты получить по запросам - и все в одной программе.
← →
Johnmen © (2006-07-26 15:54) [6]
> Fishka (26.07.06 15:47) [5]
...........???????????
А что мешает в "одной программе" всё сделать???
← →
Fishka (2006-07-26 16:02) [7]Johnmen © (26.07.06 15:54) [6]
Раньше ничего не мешало.Теперь уже мешает совет
Desdechado © (26.07.06 15:15) [4]
По-правильному: база создается отдельно вместе с таблицами и проч.
А работа с данными - отдельно. И не надо винегрет из этого делать.
Я следую советам :-)
← →
Johnmen © (2006-07-26 16:07) [8]
> Fishka (26.07.06 16:02) [7]
Он не советовал писать несколько программ!
>Я следую советам :-)
Всегда и во всём?
← →
sniknik © (2006-07-26 16:16) [9]а можно я посоветую перевести пару тройку тысяч долларов мне на счет?...
или нет, лучше посоветую переводить ежемесячно, перманентно и с индексацией... ;о))
← →
Sergey13 © (2006-07-26 16:17) [10]> [9] sniknik © (26.07.06 16:16)
Хорошо хото не "выпей иаду" посоветовал. 8-)
← →
atruhin © (2006-07-26 17:49) [11]> Раньше ничего не мешало.Теперь уже мешает совет
> Desdechado © (26.07.06 15:15) [4]
Он тебе посоветовал сделать:
> IBDataBase1.Params.Add("USER "SYSDBA"");
> IBDataBase1.Params.Add("PASSWORD "masterkey"");
> IBDataBase1.Params.Add("default character set WIN1251")
> ;
> IBDataBase1.SQLDialect:=1;
> IBDataBase1.CreateDatabase;
> База создается. Создаю таблицы - таблицы создаются.
> IBQuery1.SQL.Clear;
> IBQuery1.SQL.Add("create table region");
> IBQuery1.SQL.Add("(code_region Integer NOT NULL,");
> IBQuery1.SQL.Add("name_region Character (30) Character
> set WIN1251 NOT NULL UNIQUE COLLATE PXW_CYRL,");
> IBQuery1.SQL.Add("primary key (code_region))");
> IBQuery1.ExecSQL;
IBDataBase1.Connected := false;
IBDataBase1.Connected := true;
Вроде так, хотя с IBX не работаю, могу ошибиться.
Страницы: 1 вся ветка
Текущий архив: 2006.09.24;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.073 c