Главная страница
    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.45 MB
Время: 0.037 c
6-1095128280
inkarik
2004-09-14 06:18
2004.11.21
Internet


14-1099576030
Comp
2004-11-04 16:47
2004.11.21
Win Gate 3.0


14-1099569523
MiniUser
2004-11-04 14:58
2004.11.21
Будет ли работать?


1-1099855237
margel
2004-11-07 22:20
2004.11.21
2мерный стринговый массив


3-1098296531
ввх
2004-10-20 22:22
2004.11.21
Ошибка при закрытии программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский