Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.22;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.011 c
15-1366110720
Demo
2013-04-16 15:12
2013.09.22
События в FoxPro MSDOS


2-1357671425
hansa
2013-01-08 22:57
2013.09.22
Собственник визуальных компонент


2-1357371621
Handler
2013-01-05 11:40
2013.09.22
исключить дублирование в ComboBox ах


15-1365671316
ПЛОВ
2013-04-11 13:08
2013.09.22
UDF на Delphi, FireBird и NULL


15-1365507314
Copyrighter
2013-04-09 15:35
2013.09.22
Регистрация ПО