powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация запроса (по мотивам моего же топика)
19 сообщений из 44, страница 2 из 2
Оптимизация запроса (по мотивам моего же топика)
    #32332902
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И CAST и CASE все это уже есть. CASE - появилась в FB 1.5.

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32332923
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в IB 6.5 CASE есть?
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32332978
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет (скорее всего).

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333171
Berg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А замутить CASE через UDF в IB не как два пальца?

Вывод:
Пора переходить на FB...:-)

P.S.
Пардон, CAST - это я совсем не в тему...
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333179
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я замутил, тока ошибку
Код: plaintext
1.
2.
3.
Invalid token.
invalid request BLR at offset  59 .
function IB_CASE is not defined.
module name or entrypoint could not be found.

выдает.
Причем при вызове из дельфи работает корректно, а как UDF в IB не работает.
Никто не знает из-за чего может это быть
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333273
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так функцию нужно еще и определить в базе (примерно вот так):

Код: plaintext
1.
2.
3.
4.
5.
6.
DECLARE EXTERNAL FUNCTION SUBSTR
    CSTRING( 80 ),
    SMALLINT,
    SMALLINT
RETURNS CSTRING( 80 ) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'


Best regards,
Dnico.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333290
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче у меня так
Код: plaintext
1.
2.
3.
4.
5.
6.
DECLARE EXTERNAL FUNCTION CASE
    CSTRING( 30 ),
    CSTRING( 30 ),
    DOUBLE PRECISION,
    DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_CASE' MODULE_NAME 'ib_dll'

ну а DLL
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
library ib_dll;
uses
  SysUtils,
  Classes;
{$R *.res}
function IB_CASE(MainStr, LikeStr: PChar; OK, NotOK: double): double; cdecl; {export; }
begin
  if pos(String(LikeStr),String(MainStr))> 0  then Result:=double(OK)
  else Result:=double(NotOK);
end;
exports
  IB_CASE;
begin
end.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333307
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кстати, DLL где должна лежать относительно *.GDB?
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333369
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сервере есть папка UDF. Там и должно это быть.
Best regards,
Dnico.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333428
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И нихрена оно не работает
Код: plaintext
1.
SELECT CASE( BAG_TYPES.NAME, 'А',  1 . 2 ,  4 . 5  ) CASE_OF_NAME
FROM BAG_TYPES

(в BAG_TYPES - 4 записи)
выдает
0.0
0.0
0.0
0.0
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333451
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
{export; } ??? А почему вот это ?

Должно быть : cdecl; export;

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333456
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть мнение, что кривые руки мешают задавать адекватные вопросы...
Воинствующее невежество+Интернет=Страшная сила
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333458
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нам тут раздают ЗАДАЧИ, что само по себе странно. Скромнее надо быть.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333461
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понимаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE NEW_PROCEDURE (
    A VARCHAR( 10 ) CHARACTER SET WIN1251,
    S VARCHAR( 10 ) CHARACTER SET WIN1251)
RETURNS (
    D INTEGER)
AS
begin
  D=case(:A,:S,  11 ,  1 );
  suspend;
end

при A=qwer; S=q;
D=0.0 ?????????
Почему???
Кто-нить знает???
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333492
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы еще добавил const
Код: plaintext
1.
function IB_CASE(const MainStr, LikeStr: PChar; const OK, NotOK: double): double; cdecl; export;

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333496
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Могун:
Лично ВАМ никто задания не раздает. Но если Вам так кажется, то Вас никто не заставляет их решать.
Да, я еще плохо (может очень плохо) разбираюсь в IB.
И просто прошу помочь. Причем не помочь решить, а подсказать, что может быть не так.
У Вас, что с первого раза все получилось и стало работать?

Dnico писал:Должно быть : cdecl; export;
Дело в том, что у меня сначла так и было, но результат как был нулевым, так им и остался.
Все равно, спасибо за помощь.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333512
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Федор, я могу иметь своё мнение, а оно таково:
Вы воинствующе себя ведете и не работаете над ответами, которые дает аудитория, а я таких людей не уважаю, что и довожу до Вашего сведения.
Сама семантика сообщения, которое говорит о ЗАДАЧЕ, тому подтверждение.
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32333547
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за помощь.
Не буду с CASE мутить, что-то не работает никак.
Пусть будет, как и было: через 2 ХП
...
Рейтинг: 0 / 0
Оптимизация запроса (по мотивам моего же топика)
    #32334212
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть Федор уже не увидит это, но мое мнение не так уж и страшно поменять IB 6.5 на FB 1.5 (если дело в CASE)

(там механизм CASE отработан на 100 %)
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизация запроса (по мотивам моего же топика)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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