Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Interbase и кодировка при первой записи [D5, IB5.x]


Fishka ©   (2006-07-26 14:13:00) 

Создаю программно базу:

  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 поля - код и название.
Код формируется с помощью генератора.
Проблема в поле название я не могу внести русские буквы.
Вношу английские, обновляю, затем корректирую на русские.

Почему я не могу сразу вносить русские буквы?И что надо сделать, чтобы решить эту проблему?


atruhin   (2006-07-26 17:49:00) [1]

> Раньше ничего не мешало.Теперь уже мешает совет
> 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 не работаю, могу ошибиться.


Sergey13   (2006-07-26 16:17:00) [2]

> [9] sniknik ©   (26.07.06 16:16)

Хорошо хото не "выпей иаду" посоветовал. 8-)


sniknik   (2006-07-26 16:16:00) [3]

а можно я посоветую перевести пару тройку тысяч долларов мне на счет?...
или нет, лучше посоветую переводить ежемесячно, перманентно и с индексацией... ;о))


Johnmen   (2006-07-26 16:07:00) [4]


> Fishka   (26.07.06 16:02) [7]


Он не советовал писать несколько программ!

>Я следую советам  :-)

Всегда и во всём?


Fishka   (2006-07-26 16:02:00) [5]

Johnmen ©   (26.07.06 15:54) [6]

Раньше ничего не мешало.Теперь уже мешает совет
Desdechado ©   (26.07.06 15:15) [4]
По-правильному: база создается отдельно вместе с таблицами и проч.
А работа с данными - отдельно. И не надо винегрет из этого делать.

Я следую советам  :-)


Johnmen   (2006-07-26 15:54:00) [6]


> Fishka   (26.07.06 15:47) [5]


...........???????????
А что мешает в "одной программе" всё сделать???


Fishka   (2006-07-26 15:47:00) [7]

Johnmen ©   (26.07.06 15:14) [3]
Спасибо, но так не хочется этого делать......

Desdechado ©   (26.07.06 15:15) [4]
Спасибо за ответы, но винегрет, видимо, сделаю, так как это дипломный проект. Пока не вижу другого выхода для диплома ..... Надо и базу создать, если ее нет, и данные ввести, и отчеты получить по запросам - и все в одной программе.


Desdechado   (2006-07-26 15:15:00) [8]

По-правильному: база создается отдельно вместе с таблицами и проч.
А работа с данными - отдельно. И не надо винегрет из этого делать.

И по поводу [1] - IB кэширует метаданные только при подключении, поэтому любые их программные изменения в этом кэше не отражаются.

И еще. Помни, что кодировка БД должна совпадать с кодировкой самого коннекта (в свойствах IBDatabase - lc_type)


Johnmen   (2006-07-26 15:14:00) [9]


> Database надо сделать disconnect?


Да.


Fishka   (2006-07-26 15:08:00) [10]

Непонятно......
Database надо сделать disconnect? А по-другому?
Я поподробнее можно?


Johnmen   (2006-07-26 14:16:00) [11]

После игры с метаданными надо отключиться и подключиться снова с соответствующими параметрами.


Наверх

Титульная страница Поиск, карта сайта Написать письмо