![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как 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