Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизПроблема с возвращением параметра в TADOStoredProc Найти похожие ветки
← →
alsov1 (2004-11-15 13:23) [0]Приветствую Мастера!
Вот какая проблема
Есть процедура
CREATE or replace PROCEDURE Addtest (
HowMany in number,
now in timestamp,
nowdate out timestamp)
is BEGIN
declare
i number;
begin
for i in 1..HowMany loop
insert into Test
values
(dbms_Random.STRING("p", 20),
dbms_Random.normal,
now);
end loop;
nowdate := sysdate;
commit;
end;
END;
/
Из делфи вызываю её с помощью TADOStoredProc вот так
Proc.ProcedureName := "ADDTEST";
proc.Parameters.Clear;
for i := 0 to 2 do
Proc.Parameters.AddParameter;
Proc.Parameters.Items[0].Value := "10";
Proc.Parameters.Items[1].Value := "10.10.04 10:34:09";
Proc.Parameters.Items[2].DataType := ftTimeStamp;
Proc.Parameters.Items[2].Direction := pdOutput ;
proc.Prepared := true;
proc.ExecProc;
Работать не хочет - ругается
Причём если нет третьего параматра в процедуре (nowdate out timestamp; естественно он и в делфях не прописывается), то всё работает нормально.
А как только объявляешь возвращаемый параметр - вот тут всё плохо.
Подскажите в чём ошибка?
Заранее спасибо
← →
Соловьев © (2004-11-15 13:29) [1]
> nowdate out timestamp)
nowdate timestamp output)
?
← →
Соловьев © (2004-11-15 13:30) [2]
> nowdate := sysdate;
set nowdate = sysdate
← →
alsov1 (2004-11-15 15:13) [3]Процедура компилится и работает, а вашем способом даже и не думает
СУБД - Оракл у меня.
Проблема в вызове процедуры из Делфи.
← →
Соловьев © (2004-11-15 15:22) [4]
> СУБД - Оракл у меня.
ну так сразу писать надо то :) тут я не знаток...
← →
alsov1 (2004-11-15 15:25) [5]Так вызов из делфей с помощью TADOStoredProc должен быть одинаковый для любой поддерживаемой СУБД.
← →
Соловьев © (2004-11-15 15:42) [6]
> Proc.ProcedureName := "ADDTEST";
> proc.Parameters.Clear;
> for i := 0 to 2 do
> Proc.Parameters.AddParameter;
>
> Proc.Parameters.Items[0].Value := "10";
> Proc.Parameters.Items[1].Value := "10.10.04 10:34:09";
> Proc.Parameters.Items[2].DataType := ftTimeStamp;
> Proc.Parameters.Items[2].Direction := pdOutput ;
>
> proc.Prepared := true;
> proc.ExecProc;
А если все в дизайн тайме настроить? Работает?
← →
alsov1 (2004-11-15 16:59) [7]в дизайн тайме тоже не хочет
← →
alsov1 (2004-11-15 18:11) [8]Разобрался
оказывается TimeStamp в делфах это
Proc.Parameters.Items[2].DataType := ftString
блин не по людски как-то :(
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c