Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Помогите решить проблему с процедурой в SyBase   Найти похожие ветки 

 
kivadim   (2004-10-22 14:20) [0]

Создаю процедуру в SyBase, которая должна возвращать значения в выходные параметры. Значения выходных параметров должны быть доступны в вызывающей программе, а на деле в программе выдает какой-то мусор, хотя на сервере процедура работает нормально.
Кто-нибудь подскажите в чем дело!

create procedure get_tip_equip
(in v_tip_id integer,
out v_categor_id integer,
out v_name varchar(50))
result (v_categor_id integer,
       v_name varchar(50))
begin
 select categor_id, name from Tip_equip where tip_id=v_tip_id
end

функция вызова вышеописанной процедуры  

function GetElement: boolean;
begin
 try
    result:=true;
    StoredProc1.Close;
    StoredProc1.StoredProcName:="get_tip_equip";
    StoredProc1.Params.Clear;
    with StoredProc1.Params.CreateParam(ftInteger, "v_tip_id", ptInput) do
    begin
     AsInteger:=tip_id;//переменная
    end;
    StoredProc1.Params.CreateParam(ftInteger, "v_categor_id", ptOutput);
    StoredProc1.Params.CreateParam(ftString, "v_name", ptOutput);
    StoredProc1.Prepare;
    StoredProc1.ExecProc;
    StoredProc1.GetResults;
    Edit1.text:=Trim(StoredProc1.Params[1].AsString);
    Edit2.text:=Trim(StoredProc1.Params[2].AsString);
 except
  result:=false;
 end;
end;


 
Nikolay M. ©   (2004-10-22 14:50) [1]

Было бы удивительно, есди бы возвращалось что-то, отличное от мусора...
Где присвоение параметрам значений?


 
kivadim   (2004-10-22 15:12) [2]

Я так понимаю присвоение делается в самой процедуре, пробовал (into v_categor_id,v_name), но это тоже не помогает, или присвоение надо делать в программе?

create procedure get_tip_equip
(in v_tip_id integer,
out v_categor_id integer,
out v_name varchar(50))
result (v_categor_id integer,
      v_name varchar(50))
begin
select categor_id, name
into v_categor_id,v_name
from Tip_equip where tip_id=v_tip_id
end


 
clickmaker ©   (2004-10-22 15:18) [3]

create procedure get_tip_equip
(
@v_tip_id integer,
@v_categor_id integer out,
@v_name varchar(50) out
)
as begin
 select @v_categor_id = categor_id, @v_name = name
 from Tip_equip where tip_id=@v_tip_id
end


 
kivadim   (2004-10-22 16:09) [4]

Ну вот другое дело. Спасибо!
Только вот почему если в поле значение null, то в параметре в программе мусор?



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
14-1099478898
Atrax
2004-11-03 13:48
2004.11.21
Ищу Игруху для старого компа


14-1099735110
Maxim____
2004-11-06 12:58
2004.11.21
Посоветуйте что почитать.


1-1099660532
Anton123
2004-11-05 16:15
2004.11.21
Имя компьютера


1-1099664180
Cosinus
2004-11-05 17:16
2004.11.21
Runtime create PoupMemu Items... Не разберусь с OnDrawItem...


1-1099473927
Leaner
2004-11-03 12:25
2004.11.21
Уничтожение компонента в Run Time.