Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с написанием фукции ФБ3 / 3 сообщений из 3, страница 1 из 1
17.11.2015, 06:46
    #39105121
Minkus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием фукции ФБ3
Есть функция в udf

Код: pascal
1.
2.
3.
4.
5.
6.
function SET_FLAG_VALUE_BG(var iFlags: Int64; var iBitIndex: SmallInt; var iBitValue:SmallInt): Int64; cdecl; export;
begin
     if iBitValue>0
      then Result:=iFlags or (1 shl iBitIndex)
      else Result:=iFlags and Not (1 shl iBitIndex);
end;



хочу перести на SQL
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE FUNCTION SET_FLAG_VALUE_BG (
    AFLAG BIGINT,
    ABITINDEX SMALLINT,
    ABITVALUE SMALLINT)
RETURNS BIGINT
AS
BEGIN
  / Function Text /
  IF (:ABITVALUE > 0) THEN
    RETURN BIN_OR(:AFLAG, BIN_SHL(1, :ABITINDEX));
  ELSE
    RETURN BIN_AND(:AFLAG, NOT BIN_SHL(1, :ABITINDEX));
END



получаю:
Invalid token.
unsuccessful metadata update.
CREATE OR ALTER FUNCTION SET_FLAG_VALUE_BG failed.
Dynamic SQL Error.
SQL error code = -104.
Invalid usage of boolean expression.


что делаю не так?

Спасибо.
...
Рейтинг: 0 / 0
17.11.2015, 07:11
    #39105127
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием фукции ФБ3
Minkus,

замени NOT на BIN_NOT(BIN_SHL(...
...
Рейтинг: 0 / 0
17.11.2015, 10:10
    #39105249
Minkus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием фукции ФБ3
Спасибо, помогло!!!

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


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