Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.21;
Скачать: [xml.tar.bz2];




Вниз

Можно ли в хранимой прцедуре InterBase вызывать функции, хранящиеся в самой базе (Functions) 


savva   (2002-01-24 10:00) [0]

subj. Если да - то может научите меня, глупого :))



Alexandr   (2002-01-24 10:27) [1]

конечно можно.
А чего тут такого?
а вызываются они как и везде
например

a=abs(b);



savva   (2002-01-24 10:43) [2]

ну тогда я вообще туп... в процедуре вида

CREATE PROCEDURE info_message RETURNS (
count_mess INTEGER
)
AS
BEGIN
for select COUNT(Event.KIND) from event
where ( BIT_AND(Event.KIND,1024)=1024 )
into count_mess
do suspend;
END


выходит неприятная ошибка:
General SQL error.
invalid request BLR at offset 46
function BIT_AND is not defined
module name or entrypoint could not be found

в то время как запрос типа

SELECT Event.KIND, COUNT(bit_and(Event.KIND,512))
FROM EVENT
where bit_and(Event.KIND,1024)=1024
GROUP BY Event.KIND

проходит..
что то не выходит у меня...



Desdechado   (2002-01-24 10:48) [3]

не забудь только ДЛЛ (откуда они подключаются) подложить к серверу



Alexandr   (2002-01-24 10:50) [4]

Ответь-ка мне на такие вопросы
1) Версия Interbase
2) что это за bit_and откуда она, ее описание
3) Что за таблицы event, поле event.kind
4) Проверял-сразу же, ниго не меняя перед этим.
5) Ошибка кагда выдается-при компиляции или при выполнении- если при выполнении попробуй пересоздать процедуру.



savva   (2002-01-24 11:10) [5]

>Desdechado © (24.01.02 10:48)
>не забудь только ДЛЛ подложить к серверу
забыл :)) Спасибо :-)
>Alexandr © (24.01.02 10:50)
отвечать наверное не надо.. Спасибо за помощь :))

Просто запрос ранее выполнялся к серверу удаленному, там библиотека лежала, а для отладки процедуры я сделал себе локальную копию базы , а про библиотеку забыл...

P.S. Спасибо за помощь, извините что отвлек по пустому....

P.P.S. Alexandr, с прошедшим днЁм ВаРеньЯ :)) \ =/



Alexandr   (2002-01-24 11:20) [6]

2Savva:
1) Ну вот зря кипишь поднял...
2) Ну хоть кто-то вспомнил, что у меня недавно день рождения был. Спасибо.
Помнится, авторы сайта обещали поздавлять с днем рождения тех, кто его в анкете укажет...



Digitman   (2002-01-24 11:20) [7]

Можно. Если под "Functions" подразумевался механизм UDF, то смею утверждать, что в IB можно делать такие UDF-"выкрутасы", какие прочим промышленным SQL-серверам попросту не по силам.
Написав UDF DLL в ООП-среде, в SP/триггерах/View можно даже работать с объектами/классами, создаваемыми и управляемыми этими ООП-средами в run-time. Разумеется, в "чистом" IB это приходится делать с определенными неудобствами из-за скудности ISQL-синтаксиса. Но на то IB и стал (начиная с v6.x) OpenSource, чтобы расширить синтаксические/функциональные возможности IB-ядра собственными силами при определенном желании и упорстве



Alexandr   (2002-01-24 11:28) [8]

2Digitman:
А ты не пытался смотреть в эти исходники?
Ну и как? По зубам они тебе?
Слышал ли ты что-либо об проекте Yaffil?



Digitman   (2002-01-24 11:40) [9]

>Alexandr
А как же ! Конечно, смотрел ! Иначе не говорил бы)
Ничего там особо страшного нет, как мне показалось : достаточно прозрачная логика, классический C-синтаксис, стандартные транспортные технологии и библиотеки использованы.. Собрать, конечно, сложновато все это будет (особенно для не умудренного опытом C-программера), но ведь FireBird - вот он ! Собирается, значит) если приспичило)



Alexandr   (2002-01-24 11:43) [10]

и все-таки по Yaffil посмотри тут

http://private.peterlink.ru/rcav/index.htm

я думаю, это тебя может заинтересовать



Digitman   (2002-01-24 11:51) [11]

Центральная логика BLR-парсера (святая святых IB-ядра), к примеру, размещена в C..\source\jrd\par.c ...



Digitman   (2002-01-24 11:56) [12]

>Alexandr
Да не надо мне оно) Зачем ? Просто, рассмотрев повнимательней исх-ки IB-ядра (именно JRD-логики, трансп.уровень еще проще), мне стало понятно, как оно работает. И при действительной необходимости всегда можно перекомпилировать ядро и собрать IB-сервер с исправлениями и внесенными собственными изменениями



Alexandr   (2002-01-24 12:00) [13]

2Digitman:
Что тебе не надо?
Вот есть проект Firebird
есть проект Yaffil, кстати, абсолютно дружественный в плане включения в свою команду.
Если ты разбираешься в исходниках, если ты создаешь свои проекты с использованием Interbase/Firebird, если тебе есть что нового внести в Firebird/Yaffil, то почему бы тебе не отписать в группу Yaffil о себе, своих желаниях и возможностях.



Digitman   (2002-01-24 12:21) [14]

вот когда мне это реально будет необходимо, тогда и разговор будет. и мы попросту ушли от вопроса автора.



Alexandr   (2002-01-24 12:28) [15]

Да я и говорю, когда тебе будет необходимо, не создавай свой клон Firebird, а присоединись к Yaffil


да автор уже давно разобрался.
Почитай внимательно.
У него dll не было. Он тебя послушался, проверил. И давно уже радуется жизни. А мы тут застряли...




savva   (2002-01-24 13:15) [16]

>Alexandr © (24.01.02 11:20)
>Помнится, авторы сайта обещали поздавлять с днем рождения тех,
>кто его в анкете укажет...
Это только обещания...

>Digitman © (24.01.02 11:20)
Именно так и реализована функция, а смысл ее в том, что она читает битовую маску из целого числа..



savva   (2002-01-24 13:20) [17]

>Alexandr © (24.01.02 12:28)
Была библиотека... :)))

а исходники IB как то я пытался собрать, да опыту у меня маловато будет, адНако... (просто сперва я нашел исходники 6 версии а уж потом собранную проект...)

P.S. А интересно было читать дискуссию....



Alexandr   (2002-01-24 13:35) [18]

2savva:
Да ладно. Это мы просто на отвлеченную тему поговорили.
Это так, открытый приватный чат был.



Digitman   (2002-01-24 13:40) [19]

>savva
Я так и понял, что это - UDF. Только вот непонятно, что значит : "проходит - не проходит". Ты вел речь о компиляции скрипта запроса или о результатах его выполнения ?



Desdechado   (2002-01-24 20:34) [20]

2 Digitman
не знаю, как сейчас (в ИБ6 не пробовал), а в 5 был глюк:
описана UDF, на нее есть ссылки из процедур, но UDF при этом можно было убить, переопределить и все такое.
да и наличие самой ДЛЛ проверяется только при выполнении процедуры



savva   (2002-01-26 16:14) [21]

>Digitman © (24.01.02 13:40)
я вел речь про компиляцию скрипта...




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.21;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.76 MB
Время: 0.037 c
4-66701           KarlovAF              2001-12-20 16:34  2002.02.21  
Как убрать горизонтальный скролбар с TDBGrid-а?


1-66519           Dara                  2002-02-04 20:23  2002.02.21  
rabota s datami


1-66602           dimich                2002-02-06 12:52  2002.02.21  
Аттрибут!!!


3-66475           Dima Kopachev         2002-01-29 01:06  2002.02.21  
Как вызвать окно ввода логина и пароля в БД


3-66493           kam_nal               2002-01-29 17:54  2002.02.21  
Password при подключении к базе