powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / !!!Help! как использовать ХП в Delphi??
25 сообщений из 27, страница 1 из 2
!!!Help! как использовать ХП в Delphi??
    #32409061
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите дураку!! как в Delphi использовать ХП с помощью компонентов Interbase?
в книгках сказано что ето выполняется с помощью компонента IBStoredProc, но в реале
возникает ошибка - говорит что надо исполбзовать TIBQuery а не TIBStoredProc. Но самое интересное, что при использовании последнего возникает та ге ошибка. Че делать - понятия не имею..
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32409074
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И мы тоже.
Ибо, что за ошибка, понятия не имеем...
Хотя тебе, как вуду, не понять наши примитивные потуги простых смертных...
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32409101
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибка такая:
... raised exception class EIBClientError with message 'use ExecProc for Procedure; use TQuery for Select procedure'

обьясните, please, как правильно сделать?
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32409138
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозреваю, что процедура у тебя возвращает набор данных .
Для таких процедур нужно пользовать не TIBStoredProc , а TIBQuery . И в нем писать запрос типа:
Код: plaintext
SELECT * FROM MyProc(:Param1, :Param2, ...)
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32409186
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, не возвращает. она создает запись в двух таблицах с одинаковыми id
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32409237
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай сюда текст SP
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32409909
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно узнать метод которым ты вызываешь эту процу? У меня такое чувство что это "Open", а требуется "ExecSQL" или "ExecProc"
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32413961
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот текст ХП


CREATE PROCEDURE NEW_THERAPY (
PERSON_ID INTEGER,
DESCR VARCHAR(40) CHARACTER SET WIN1251)
AS
DECLARE VARIABLE TMP INTEGER;
begin
select therapy_id from therapy where description =:descr into :TMP;
if (tmp is null) then
begin
tmp = gen_id(add_diagnos_generator,1);
insert into therapy values(:TMP, :descr);
suspend;
end
insert into s_surgery values(:TMP,:person_id);
end

посмотрите пожалста!
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414001
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если пользуешь TIBStoredProc , то убери в своей процедуре SUSPEND ;
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414004
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Мимопроходящий
зачем суспенд убирать? у меня работают процедуры с суспендом...
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414009
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такие изыскания
Код: plaintext
1.
2.
3.
insert into therapy 
  select description, gen_id(add_diagnos_generator, 1 ) 
  from therapy 
  where therapy_id is null


второй возможно
Код: plaintext
1.
2.
insert into s_surgery 
  select therapy_id, <значение Person_ID>
  from therapy 
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414016
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>VF

А что такое суспенд ? В доках явно описано... :)
Да и процедуры бывают разные. Что там же описано.
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414019
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFзачем суспенд убирать? у меня работают процедуры с суспендом...
А ты видишь в его процедуре RETURNS(...) ?!
Я нет.
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414020
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет но почему в данном случае отказаться?
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414022
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Мимопроходящий
нууу...
короче понятно...
тормоз я...
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414074
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SUSPEND
Suspends execution of a select procedure until the next FETCH is issued and returns values to the calling application.
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414110
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Johnmen

всё бы хорошо с такими insert'ами,но требуется во втором заносить в качетсве therapy_id значение полученное генератором в первом. поэтому и использовалась внутрення переменная.
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414119
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты её, родимую, занули таки перед селектом-то ;)
Потому как криво работать будет твоя процедура.
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414152
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>woodoo

Хм... Так после первого инсерта все id уже прописаны, осталось только выбрать, во втором инсерте...

А процедура вообще какая-то кривая. Не только из-за наличия суспенда, но и из-за отсутствия цикла...

А может я чего не понял... :)
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414201
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как-то по-моему все друг друга не поняли.
Надо сделать следющее:
известны description и person_id

если в таблице therapy присутствует description в поле descr, то ничего делать не надо.
Если такого заданного значения там нет, то надо создать новую строку с therapy_id из генератора и description. После этого необходимо в другую таблицу(S_surgery) внести s_surgery.person_id=person_id и s_surgery.therapy_id=therapy_id полученное выше.

написанная процедура это действие выполняет(проверено в ibexpert). а вот delphi никак не научить с ней работать.
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414214
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SUSPEND убрал?
А tmp = null ; добавил в начало?
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414264
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и suspend убрал и обнуляю переменную, а Delphi с ней работать все равно не хочет. в етом и кроется основная проблема
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32414286
Фотография Kull Damned
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой компонент и какой метод вызываешь?
Код давай!
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32415484
woodoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
with storedproc1 do begin
parambyname('descr').asString:=NameEdit.text;
prepare;
execProc;
...
Рейтинг: 0 / 0
!!!Help! как использовать ХП в Delphi??
    #32416382
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В процедуре вроде бы 2 входных параметра...
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / !!!Help! как использовать ХП в Delphi??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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