Вызов ХП из Delphi
Вызов ХП из Delphi
Доброго времени суток.
Подскажите, будьте добры.
Процедура-выборка, при вызове в IBExpert отрабатывает беспроблемно.
При вызове из Delphi 7 через свойство SQL компонента TIBQuery ничего не происходит. При повторном вызове отрабатывает, но результат тот, который должен был быть при первом вызове. Описания подобной проблемы не нашел.
Подскажите, будьте добры.
Процедура-выборка, при вызове в IBExpert отрабатывает беспроблемно.
При вызове из Delphi 7 через свойство SQL компонента TIBQuery ничего не происходит. При повторном вызове отрабатывает, но результат тот, который должен был быть при первом вызове. Описания подобной проблемы не нашел.
Re: Вызов ХП из Delphi
небось, suspend?
Re: Вызов ХП из Delphi
Ну да) А как же без suspend'a?)
Re: Вызов ХП из Delphi
ну и. тогда процедуру вызываем как select * from myproc?
Re: Вызов ХП из Delphi
Код: Выделить всё
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
программу копайте. никаких причин чтобы не получить результат при первом вызове, не вижу, абсолютно.
так что скорее всего глючит Ваш код. А еще лучше, вот это
DM.tModel.FieldByName('Modelgroup').AsInteger
сначала лучше присвоить отдельной переменной, и только потом втыкать в текст запроса.
Хотя бы при отладке будет видно, "первый раз" там есть что-либо или нет (или то или не то).
p.s. код положено оформлять кнопочкой code. В первый раз сделал это за Вас, во второй раз будет предупреждение.
так что скорее всего глючит Ваш код. А еще лучше, вот это
DM.tModel.FieldByName('Modelgroup').AsInteger
сначала лучше присвоить отдельной переменной, и только потом втыкать в текст запроса.
Хотя бы при отладке будет видно, "первый раз" там есть что-либо или нет (или то или не то).
p.s. код положено оформлять кнопочкой code. В первый раз сделал это за Вас, во второй раз будет предупреждение.
Re: Вызов ХП из Delphi
Извините, об оформлении запамятовал. Не так уж часто отписываюсь.
Re: Вызов ХП из Delphi
Спасибо, буду колупать код.
Re: Вызов ХП из Delphi
Потрясающе)
Это работает без проблем) Не думал, что здесь может быть проблема)
Еще раз спасибо.
Код: Выделить всё
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;
Еще раз спасибо.