Страница 1 из 1
Вызов ХП из Delphi
Добавлено: 03 мар 2009, 18:11
Bychok
Доброго времени суток.
Подскажите, будьте добры.
Процедура-выборка, при вызове в IBExpert отрабатывает беспроблемно.
При вызове из Delphi 7 через свойство SQL компонента TIBQuery ничего не происходит. При повторном вызове отрабатывает, но результат тот, который должен был быть при первом вызове. Описания подобной проблемы не нашел.
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 09:41
kdv
небось, suspend?
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 10:45
Bychok
Ну да) А как же без suspend'a?)
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 11:04
kdv
ну и. тогда процедуру вызываем как select * from myproc?
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 11:17
Bychok
Код: Выделить всё
CREATE PROCEDURE SP_S_MGR (
mgr INTEGER)
RETURNS (
maname VARCHAR(20),
moid INTEGER,
moname VARCHAR(60),
...
c1970 INTEGER)
AS
BEGIN
FOR SELECT Marka.Name AS Ma_Name, Model.Model_id,
...
Cost."_1971", Cost."_1970"
FROM Marka JOIN Model ON Marka.Marka_id =Model.Marka_id
...
ORDER BY Model.marka_id, Model.order_by
INTO :MaName, :MoId, :MoName, :BA45, :BA44, :BA43, :BA42, :BA41, :BA40,
...
:c1970
DO
BEGIN
SUSPEND;
END
END
Код: Выделить всё
DM.qMGR.Close;
DM.qMGR.SQL.Clear;
DM.qMGR.SQL.Add('SELECT * FROM Sp_s_mgr('
+ IntToStr(DM.tModel.FieldByName('Modelgroup').AsInteger) + ')');
DM.qMGR.Open;
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 12:23
kdv
программу копайте. никаких причин чтобы не получить результат при первом вызове, не вижу, абсолютно.
так что скорее всего глючит Ваш код. А еще лучше, вот это
DM.tModel.FieldByName('Modelgroup').AsInteger
сначала лучше присвоить отдельной переменной, и только потом втыкать в текст запроса.
Хотя бы при отладке будет видно, "первый раз" там есть что-либо или нет (или то или не то).
p.s. код положено оформлять кнопочкой code. В первый раз сделал это за Вас, во второй раз будет предупреждение.
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 12:26
Bychok
Извините, об оформлении запамятовал. Не так уж часто отписываюсь.
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 12:27
Bychok
Спасибо, буду колупать код.
Re: Вызов ХП из Delphi
Добавлено: 04 мар 2009, 12:34
Bychok
Потрясающе)
Код: Выделить всё
MGR := IntToStr(DM.tModel.FieldByName('Modelgroup').AsInteger);
DM.qMGR.Close;
DM.qMGR.SQL.Clear;
DM.qMGR.SQL.Add('SELECT * FROM Sp_s_mgr(' + MGR + ')');
DM.qMGR.Open;
Это работает без проблем) Не думал, что здесь может быть проблема)
Еще раз спасибо.