![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
В базе (на IBExpert) есть хранимая процедура:
Код ALTER PROCEDURE MED_ACT_AND_SPEC ( code_act integer) returns ( code_spec integer) as begin for select "MED_ACT_and_SPEC".code_spec from "MED_ACT_and_SPEC" where "MED_ACT_and_SPEC".code_act=:code_act into :code_spec do suspend; end которая возвращает набор из числовых значений.. В Builder по нажатию кнопки вот такой обработчик:
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Вызов ExecProc предназначен для хранимых процедур, которые не возвращают набор данных. Для процедур, возвращающих набор данных используется метод Open, либо Active:=true. Итого, что имеем: у тебя есть хранимая процедура, тебе надо из нее вернуть таблицу (ну, не вожно, несколько данных), так? Значит, делаешь следующее: На форму добавляешь TIBQuery, в ней - вызываешь хранимую процедуру, запустить Query можно так, как я показал, через Open, и прочитать результаты через First/Next... (это все чисто теоретически, у меня нет установленного IBase, поэтому проверить не могу). В IBQuery.SQL - что-то типа SQL SELECT * FROM MED_ACT_AND_SPEC(:CODE_ACT) , опиши параметр CODE_ACT у IBQuery, и присвой ему значение аналогично тому, как ты делала это для IBStoredProc ... |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 17:14 |