Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.09.22;
Скачать: [xml.tar.bz2];

Вниз

UDF на Delphi, FireBird и NULL   Найти похожие ветки 

 
Компромисс1   (2013-04-12 16:11) [40]

ПЛОВ

В firebird есть какие-то "драйвера", которые можно обновить? Может, этот баг пофиксили уже?


 
ПЛОВ ©   (2013-04-12 16:12) [41]


> Далла Пиккола   (12.04.13 16:08) [38]

Так он и работает как надо на первом значении. Фактически эта проверка сведется к result:=valdouble^ где в качестве valdouble будет указатель на double. Думаю, это уже очень давно работает :)


 
ПЛОВ ©   (2013-04-12 16:14) [42]


> В firebird есть какие-то "драйвера", которые можно обновить?
>  Может, этот баг пофиксили уже?

Сейчас проверю. Я юзаю Embedded версию, 2.5 которая.
Но точно ли это баг? Может я просто недопонял чего-то...


 
Компромисс1   (2013-04-12 16:20) [43]


> Но точно ли это баг? Может я просто недопонял чего-то...


Тебе лучше знать. Я с твоих слов об эксперименте с едиснтвенным параметром сужу, сам ничего не видел :)

Попробуй сделать вторым параметром int, убедись, что работает. Попробуй сделать 4 параметра: double, int, double, int. У меня идей много :)


 
Далла Пиккола   (2013-04-12 23:34) [44]

Интересно узнать, чем закончилась история.


 
Далла Пиккола   (2013-04-13 04:09) [45]

Честно говоря, если бы у меня стояла задача обработать NULL, имея в распоряжении уже готовую обычную UDF, я бы сделал так:

select case when a is null or  b is null then null else myudf(a,b) end
from mytable

и не мучился.


 
Inovet ©   (2013-04-13 04:57) [46]

> [45] Далла Пиккола   (13.04.13 04:09)

В функции всё может быть, может и вообще результат не из таблицы возвращать.


 
ПЛОВ ©   (2013-04-13 11:36) [47]

Та ничем не закончилась история. Два Int-а передаются без проблем. Любой Double идущее не на первом месте нечитаемо... Даже не знаю что делать...


 
Далла Пиккола   (2013-04-13 11:40) [48]

Проблема, если я не ошибаюсь, была всего лишь в передаче NULL. Все остальное устраивало. И судя по коду, который засунут в UDF, прежде всего проверяется именно это условие, и сразу возвращается NULL, если хотя бы один из параметров не определен. На мой взгляд все, что можно без потери скорости и ясности кода сделать средствами SQL, лучше делать средствами SQL.


 
Далла Пиккола   (2013-04-13 11:42) [49]

А чем не устраивает Далла Пиккола   (13.04.13 04:09) [45] ?

Один case и дело с концом.

А с BY DESCRIPTOR дальше можно сидеть и спокойно разбираться из спортивного интереса.


 
ПЛОВ ©   (2013-04-13 12:01) [50]

Я пока сделал по другому. Немного неправильно но для 90% случаев будет достаточно. А к тому времени может допилят этот баг.


 
Далла Пиккола   (2013-04-13 12:49) [51]

Баг действительно странный.
Размер структуры всегда одинаков, сама величина лежит отдельно, по ссылке. Почему "второй int" проходит, а "второй double" нет, тут можно встать в ступор.


 
Далла Пиккола   (2013-04-13 12:51) [52]

А может это иллюзия, что "первый double" проходит?


 
ПЛОВ ©   (2013-04-13 14:52) [53]

Нет, проходит именно введенное мной значение. Все сделано по вроде бы рабочим примерам, других я не нашел. Видимо - баг ФБ.


 
Inovet ©   (2013-04-13 16:27) [54]

Под дебагером глянуть?


 
ПЛОВ ©   (2013-04-15 09:25) [55]


> Inovet ©   (13.04.13 16:27) [54]

Ну а я ж как смотрел то :)


 
Компромисс1   (2013-04-15 12:35) [56]

Я не нашел подобного бага на http://tracker.firebirdsql.org/secure/Dashboard.jspa
Если есть время, можешь создать тикет. Вдруг исправят или укажут ошибку :)


 
Inovet ©   (2013-04-15 16:20) [57]

> [55] ПЛОВ ©   (15.04.13 09:25)
> Ну а я ж как смотрел то :)

Я про глубже посмотреть - как оно там лежит, что там в DLL возвращается, т.е. не просто переменные посмотерть. Смотрел?


 
ПЛОВ ©   (2013-04-16 12:09) [58]


> Я про глубже посмотреть - как оно там лежит, что там в DLL
> возвращается, т.е. не просто переменные посмотерть. Смотрел?


Глубже не смотрел. А где можно глянуть точное описание представления данных в таких форматах? Т.е. допустим я получу сами байты, как их потом перевести в число?


 
Компромисс1   (2013-04-16 12:20) [59]

Попробуй передавать в виде double precision параметров нули. Вроде в бинарном представлении одни нули должны быть, и в мантиссе, и в порядке.


 
Inovet ©   (2013-04-16 12:22) [60]

> [58] ПЛОВ ©   (16.04.13 12:09)
> А где можно глянуть точное описание представления данных в таких форматах?

Так это в стандарте где-то. Я вот в Вики сразу ткнулся, там дльше можно найти. Может и в хелпе где есть.
http://ru.wikipedia.org/wiki/IEEE_754


 
ПЛОВ ©   (2013-04-16 21:54) [61]

Спасибо за информацию, даже себе скопировал :) Поковыряю как будет время. И желание...



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2013.09.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.004 c
15-1364221417
alexdn
2013-03-25 18:23
2013.09.22
Народ на ucoz


15-1365885002
Юрий
2013-04-14 00:30
2013.09.22
С днем рождения ! 14 апреля 2013 воскресенье


3-1293012227
adigozelov
2010-12-22 13:03
2013.09.22
запрос


1-1314615724
denkop
2011-08-29 15:02
2013.09.22
Вопрос по отрисовке текста при TLabel.Enabled=false


15-1364761592
TUser
2013-04-01 00:26
2013.09.22
Рисуем лошадь





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский