powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с написанием фукции ФБ3
3 сообщений из 3, страница 1 из 1
Помогите с написанием фукции ФБ3
    #39105121
Minkus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция в 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
Помогите с написанием фукции ФБ3
    #39105127
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Minkus,

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

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


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