Разобрался

Dmitry Yemanov wrote:
> 
> 08.03.2011 7:52, AZDesign пишет:
> 
>> - строка пробелов любой длины рассматривается как пустая, т.е. функция
>> OCTET_LENGTH дает 0
> 
> У меня почему-то не дает. Что я делаю не так?
> 
ограничение Unique срабатывает раньше всех. Если его убрать, то строки
вводятся и размер правильный. НО! Это ничего не дает, так как НАЙТИ их
нельзя
where Word='   ' выдает все строки с пробелами, включая пустую.

Если требуется отслеживать уникальность, как в моем случае со словарем, то
можно использовать комбинацию хэш-функцию(например CRC32)+длину, на которые
и поставить ограничение Unique. Это работает.
Использовать только хэш-функцию, то большая вероятность получения коллизии.
С другой стороны, CRC32 хорошо работает при строках одинаковой длины и плохо
на строках с (сильно) разной длиной. Поэтому и использую в качестве второго
параметра длину.
На этом вопрос можно закрыть.
Все спасибо за объяснения.



--
View this message in context: 
http://firebird.1100200.n4.nabble.com/Char-VarChar-tp3338553p3340943.html
Sent from the firebird-russian mailing list archive at Nabble.com.

Ответить