sasha ...
Уже догадался. Щас гляну что .NET выдаст...
Мда... Там всё умнее - функции на вхоже массив байт принимают и ничто иное :-)
Зато ещё один неочевидный сразу момент выплыл:
EXECUTE BLOCK
RETURNS (
HASH1 BIGINT,
HASH2 BIGINT)
AS
DECLARE Value1 VARCHAR(10) CHARACTER SET WIN1251
Почитай сегодняшний топик в fb-devel ;)
Не пойму я, Адриано вещает что хэш применяется к строке. А вот
майкрософт считает что к массиву байт.
У меня задача такая: я задумал написать очень абстрактную систему,
работающую с разнородными объектами. Объекты имеют атрибуты. Я придумал
8
А вот Пешков написал:
Hash() should:
- always return same results for same values
Ну так для меня как раз что 15, что 15.0, что 15.00
- это всё одно и то же значение.
Какие из его фразы выводы следуют?
И заодно '15', да?
Так у вас щас так и работает, т.е. хэш 15 = '15' :)
Привет!
Так у вас щас так и работает, т.е. хэш 15 = '15' :)
Неправильно оно у них работает чичазз :)
З.Ы. Про транслитерацию только я один вспомнил или кто-то догадывался
про грабельки? ;-)
--
Best regards,
Sergeymailto:[EMAIL PROTECTED]
А вот у МС есть SqlVariant. Что ты об этом думаешь? :-)
З.Ы. Про транслитерацию только я один вспомнил или кто-то догадывался
про грабельки? ;-)
Надо всё внутри в юникоде хранить как жаба и нэт делают :)
делай как мы - канонический документ
функция получения набора данных по идентификатору (у нас - документа)-
преобразуется в XML, по нему хеш
У меня там не документ, а просто набор атрибутов. Например цена там
может лежать и надо среднее будет посчитать - что тогда?
Вот в серверах где
У меня задача такая: я задумал написать очень абстрактную систему,
работающую с разнородными объектами. Объекты имеют атрибуты. Я придумал 8
разных типов атрибутов, каждый из которых отображается на свой тип в БД.
Но, за неимением SqlVriant, мне надо было или хранить все атрибуты в
sasha wrote:
Надо всё внутри в юникоде хранить как жаба и нэт делают :)
Ну дык храни. UTF-8 тебе в руки.
--
Дмитрий Еманов
Надо всё внутри в юникоде хранить как жаба и нэт делают :)
Ну дык храни. UTF-8 тебе в руки.
UTF8 - это юникод для бедных :)))
Коваленко Дмитрий.
Привет!
Надо всё внутри в юникоде хранить как жаба и нэт делают :)
Ну дык храни. UTF-8 тебе в руки.
UTF8 - это юникод для бедных :)))
Бугага! Как раз наоборот - для богатых. То ли дело, знать, что у тебя
символ - 4 байта. А в UTF-8 - сначала поди и посчитай! :))
--
Best regards,
Sergey
Вот, собственно, пример:
EXECUTE BLOCK (
Value BLOB SUB_TYPE TEXT = ?VALUE ) -- 10
RETURNS (
Type VARCHAR(20),
Hash BIGINT )
AS
BEGIN
Type = 'BLOB TEXT';
Hash = HASH(CAST(Value AS BLOB SUB_TYPE TEXT));
SUSPEND;
Type = 'INT';
Hash = HASH(CAST(Value AS INT));
SUSPEND;
Type =
sasha ...
Вот, собственно, пример:
EXECUTE BLOCK (
Value BLOB SUB_TYPE TEXT = ?VALUE ) -- 10
RETURNS (
Type VARCHAR(20),
Hash BIGINT )
AS
BEGIN
Type = 'BLOB TEXT';
Hash = HASH(CAST(Value AS BLOB SUB_TYPE TEXT));
SUSPEND;
Type = 'INT';
Hash = HASH(CAST(Value AS INT));
А что ты ожидал ?
Аргумент HASH приводится внутри к строке и уже она хешируется.
Уж не знаю хорошо это или где...
Меня бы вполне устроило если бы он приводил к строке, ноон то приводит,
то не приводит. Вот полный вариант:
EXECUTE BLOCK (
Value BLOB SUB_TYPE TEXT = ?VALUE )
RETURNS
А можно еще результаты полного варианта опубликовать?
Не у всех ведь 2.1 стоит...
Так у кого она не стоит, тому это пожалуй ине нужно? :-)
Результаты такие:
TypeHash
BLOB TEXT 49
BIGINT 49
INT 49
SMALLINT
16 matches
Mail list logo