01.11.2007, 13:26 | #1 |
Участник
|
Добрый день,
У мня возникла такая проблемка: необходимо увеличить длину поля активного ключа таблицы. Но при компиляции выходит ошибка, что размер активного ключа не может превышать 252 байта... Можно ли каким либо образом обойти это ограничение? И еще вопрос. в этом самом активном ключе имеются: 3 поля с типом Code 20, 4 поля с типом Code 10, и по одному полю с типами Integer, Date, Option... При изменении длины одного поля с Code 20 на Code 40 пишет, что размер активного ключа равен 260 байт(из-а чего собстенно и вылезает сообщение об ошибке)... Насколько я знаю, длина Code = максимальная длина строки+2 байта(тогда Code 20 = 22 байта), Integer, Date, Option по 4 байта, соотвественно длина поля ключа после его изменения равна 146 байт... Откуда тогда берется 260 байт? |
|
01.11.2007, 13:30 | #2 |
Участник
|
Просто ради интереса, а что это за табличка, и сколько в ней записей?
|
|
01.11.2007, 13:35 | #3 |
Участник
|
табличка эта - книга операций.. сооттвественно записей много.. несколько миллионов
|
|
01.11.2007, 13:36 | #4 |
Участник
|
Цитата:
Сообщение от Lrundom
Добрый день,
У мня возникла такая проблемка: необходимо увеличить длину поля активного ключа таблицы. Но при компиляции выходит ошибка, что размер активного ключа не может превышать 252 байта... Можно ли каким либо образом обойти это ограничение? И еще вопрос. в этом самом активном ключе имеются: 3 поля с типом Code 20, 4 поля с типом Code 10, и по одному полю с типами Integer, Date, Option... При изменении длины одного поля с Code 20 на Code 40 пишет, что размер активного ключа равен 260 байт(из-а чего собстенно и вылезает сообщение об ошибке)... Насколько я знаю, длина Code = максимальная длина строки+2 байта(тогда Code 20 = 22 байта), Integer, Date, Option по 4 байта, соотвественно длина поля ключа после его изменения равна 146 байт... Откуда тогда берется 260 байт? |
|
01.11.2007, 14:10 | #5 |
Участник
|
Не забывайте, что к вторичным ключам в конце "приписываются" поля первичного. Может, у вас первичный ключ длинный?
|
|
01.11.2007, 14:18 | #6 |
Участник
|
|
|
01.11.2007, 14:51 | #7 |
Участник
|
И про SumIndexField вы тоже, наверное, не забыли...
Может, выложите объект? |
|
01.11.2007, 16:09 | #8 |
Участник
|
Мож я чего-то не понимаю, но при чем тута SumIndexField?
|
|
01.11.2007, 16:21 | #9 |
Участник
|
Они тоже добавляются в длину ключа
|
|
01.11.2007, 16:36 | #10 |
Участник
|
Получается длина активного ключа вычисляется как длина полей первичного ключа + вторичного + их SumIndexField. Ок.
Но мне нужно изменить длину одного поля ключа НЕ ИЗМЕНЯЯ не сами ключи не их SumIndexFied. Мож на уровне SQL можно можно как-то этот вопрос решить? |
|