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

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

Немогу создать уникальный индекс в IB [IB6.x]


Страницы:   1 2

Ura ©   (2002-04-30 10:45:00) 

Поле 50 символов и второе поле тоже 50 сивмолов, а индекс нужен по этим двум полям. Что делать? Кто виноват Я или ...?


Anatoly Podgoretsky   (2002-04-30 20:43:00) [1]

Ura (30.04.02 18:02)
В документации с ib server, не помню только в какой книге, указано 84


Mich   (2002-04-30 20:33:00) [2]

На http://www.ibase.ru/скачай прогу EMS QuickDesk 2.0 она бесплатная, это конструктор для создания и работы с IB


Ura   (2002-04-30 18:02:00) [3]

Скажите где про это написано. Т.е. про индексы их мах длины и влияние COLLATE на длину. ФАКТ - неработает...


Desdechado   (2002-04-30 16:44:00) [4]

COLLATE PXW_CYRL съедает 3 байта на символ
максимальная индексируемая строка ~256 байт (точно не помню)
т.о. (40+40)*3=240 - должно влезать


Johnmen   (2002-04-30 16:04:00) [5]

Тогда поэкспериментируй....
для начала убери COLLATE PXW_CYRL...


Ura   (2002-04-30 15:57:00) [6]

CREATE TABLE NEW_TABLE (
T1 VARCHAR(40) NOT NULL COLLATE PXW_CYRL,
T2 VARCHAR(40) NOT NULL COLLATE PXW_CYRL);

create unique index NEW_TABLE_IDX1
on NEW_TABLE (T1,T2)

This operation is not defined for system tables.
unsuccessful metadata update.
key size too big for index NEW_TABLE_IDX1.

Не помогло и not null...


Johnmen   (2002-04-30 15:53:00) [7]

Ну конечно же !!!!
При создании надо указать not null!


Ura   (2002-04-30 15:44:00) [8]

Переделал названия в верхиний регистр - индекс делаеться теперь так - но эффект тотже...
create unique index NEW_TABLE_IDX1
on NEW_TABLE (T1,T2)


Johnmen   (2002-04-30 15:39:00) [9]

Меня очень смущают вот эти вот кавычки " .....


Ura   (2002-04-30 15:34:00) [10]

create unique index NEW_TABLE_IDX1
on NEW_TABLE ("t1","t2")


Johnmen   (2002-04-30 15:31:00) [11]

Последний вопрос - а как пытаешься создать индекс ?


Ura   (2002-04-30 15:22:00) [12]

CREATE TABLE NEW_TABLE (
"t1" VARCHAR(40) COLLATE PXW_CYRL,
"t2" VARCHAR(40) COLLATE PXW_CYRL);
// Код IBExpert

Создаю индекс t1+t2 и облом :-(


Johnmen   (2002-04-30 15:16:00) [13]

Как создана таблица ? Приведи ...


Ura   (2002-04-30 15:10:00) [14]

Сделал 2 поля Vrachar - 40 символов WIN1251 collate PXW_CYRL - по ним тоже не создаеться
This operation is not defined for system tables.
unsuccessful metadata update.
key size too big for index RDB$PRIMARY12.
Т.е. с collate нельзя совсем сделать индекс?


Anatoly Podgoretsky   (2002-04-30 13:19:00) [15]

84 символа


kaif   (2002-04-30 13:14:00) [16]

Индексы, общей длиной более ~80 символов при использовании WIN1251 и соответствующего COLLATE не получаются. При ASCII кодировке получаются раза в 3.
Уменьши поля до 40 символов.


Ura   (2002-04-30 11:22:00) [17]

Понял - проблема у меня...


Johnmen   (2002-04-30 11:20:00) [18]

Вот у меня все создается ! ( юзаю ISQL из IBConsole)


Ura   (2002-04-30 11:16:00) [19]

collate - Незадано.


Alexandr   (2002-04-30 11:10:00) [20]

collate для этих полей задано?


Страницы:   1 2

Наверх

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