Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как SQL запросом выполнить хранимую процедуру? [IB6.x, FireBird]


NeyroSpace ©   (2002-11-15 17:33:00) 

Я так понял доступ к данным должен (для безопасности) осуществлятся только через триггеры/хп. Но почему-то не могу выполнить SQL запрос, выполняющий хп...


Prooksius   (2002-11-18 11:40:00) [1]

2 evgeg © (16.11.02 15:05)
Я писал для FIBPlus. Для стандратных компонент - да, ты прав.
А в FIBPlus ExecQuery имеет тот же эффект, что и Open - происходит открытие Query.


NeyroSpace   (2002-11-18 10:49:00) [2]

И почему в понедельник получается сразу сделать то, над чем бьешься всю пятницу?? :-)


NeyroSpace   (2002-11-18 10:47:00) [3]

Тело процеДУРЫ:
begin
/* Procedure Text */
insert into new_table (text,DIGIT) values
(:field_text,:field_digit);
suspend;
end

Пишем в редакторе IB Expert:
execute procedure NEW_PROCEDURE("yo",1);

И все работает... Блин почему в хелпе () не указаны??? :-(


evgeg   (2002-11-16 15:05:00) [4]

> Prooksius © (15.11.02 17:42

Напутали вы.

Select-проседуры надо запускать из TQuery.Open.


Val   (2002-11-15 18:31:00) [5]

>NeyroSpace © (15.11.02 17:47)
что значит-не получается? есть два типа процедур d IB(насколько помню)- процедуры действия и процедуры, возвращающие НД, первые запускаются именно EXECUTE PROCEDURE procname [ param [, param …]], из вторых делается запрос select * from procname [ param [, param …]].
Впрочем, вам уже это сказали. :)


NeyroSpace   (2002-11-15 17:47:00) [6]

EXECUTE PROCEDURE
Calls a stored procedure. Available in SQL, DSQL, and isql.
Syntax SQL form:
EXECUTE PROCEDURE [TRANSACTION transaction]
name [: param [[INDICATOR]: indicator]]
[, : param [[INDICATOR]: indicator] …]
[RETURNING_VALUES : param [[INDICATOR]: indicator]
[, : param [[INDICATOR]: indicator] …]];
DSQL form:
EXECUTE PROCEDURE name [ param [, param …]]
[RETURNING_VALUES param [, param …]]
isql form:
EXECUTE PROCEDURE name [ param [, param …]]

Без дельфей не получается :-(...


Prooksius   (2002-11-15 17:42:00) [7]


> Я так понял доступ к данным должен (для безопасности) осуществлятся
> только через триггеры/хп.

А почему это?
ХП запускается так:
В Query.SQL пишем либо execute procedure(params), либо (если хп возвращает НД, select * from MyStoredProc(params)
Тогда в первом случае пишем:
Query.ExecProc (кажется так)
а во втором - Query.ExecQuery


Наверх

Титульная страница Поиск, карта сайта Написать письмо