powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Избавиться от UDF
10 сообщений из 10, страница 1 из 1
Избавиться от UDF
    #39013650
Ruslang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть udf dll-ка с одной единственной функцией:

Код: pascal
1.
2.
3.
4.
function NOOT(var Flag: Integer): smallint; cdecl; export;
begin
  Result :=smallint((Flag and $0400)=$0400);
end;



А вот запрос где эта функция используется:
авторselect naim, count(*) from evl e, spr s where NOOT(e.flags)=1 and e.id=s.id group by naim

Чтобы программа заработала на новом компьютере, приходится таскать с собой эту dll-ку и закидывать ее в папку Firebird_2_5/UDF, что совсем неудобно.
Как можно избавиться от этой функции и перенести ее в SQL-запрос?

PS. Firebird 2.5
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013656
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используй встроенную (SDF) функцию BIN_AND
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013680
Ruslang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий , так?
Код: plsql
1.
select naim, count(*) from evl e, spr s where (BIN_AND(e.flags,1024)=1024) and e.id=s.id group by naim
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013701
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Ruslang!
You wrote on 22 июля 2015 г. 17:15:53:

Ruslangтак?типа того.
шестнадцатеричные литералы тоже можешь использовать, если тебе так удобнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013705
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ruslangтак?
[SRC plsql][/SRC]данные же у тебя выполни 2 запроса и проверь идентичность наборов. Например можно исполнить их как вложенные и потом сджойнить.
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013709
Ruslang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий , а как их использовать? IBExpert ругается на знак доллара $0400.
И еще вопрос bin_and в Firebird версии 2.1 есть?
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013719
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ruslangbin_and в Firebird версии 2.1 есть?да.
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013730
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Ruslang!
You wrote on 22 июля 2015 г. 17:24:09:

Ruslang> IBExpert ругается на знак доллара $0400.0x0400
Ruslang> И еще вопрос bin_and в Firebird версии 2.1 есть?да
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39013742
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запусти для проверки нечто подобное и погляди насколько оно одинаково
Код: sql
1.
2.
3.
4.
5.
select * from 
(select naim m1 , count(*) c1 from evl e, spr s where NOOT(e.flags)=1 and e.id=s.id group by naim) a1
join
(select naim m2, count(*) c2 from evl e, spr s where (BIN_AND(e.flags,1024)=1024) and e.id=s.id group by naim) a2
on a1.m1 = a2.m2 and a1.c1 = a2.c2

код я не проверял.
...
Рейтинг: 0 / 0
Избавиться от UDF
    #39014149
Ruslang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevskyзапусти для проверки нечто подобное и погляди насколько оно одинаково

О, отлично, не догадался бы так проверить. Сравнил, данные идентичны.

Ivan_Pisarevsky , Мимопроходящий спасибо, вы мне очень помогли.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Избавиться от UDF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]