![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с возвращением параметра в TADOStoredProc [D7]
alsov1 © (2004-11-15 13:23:00)Приветствую Мастера!
Вот какая проблема
Есть процедура
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; естественно он и в делфях не прописывается), то всё работает нормально.
А как только объявляешь возвращаемый параметр - вот тут всё плохо.
Подскажите в чём ошибка?
Заранее спасибо
alsov1 (2004-11-15 18:11:00) [1]Разобрался
оказывается TimeStamp в делфах это
Proc.Parameters.Items[2].DataType := ftString
блин не по людски как-то :(
alsov1 (2004-11-15 16:59:00) [2]в дизайн тайме тоже не хочет
Соловьев (2004-11-15 15:42:00) [3]
> 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 15:25:00) [4]Так вызов из делфей с помощью TADOStoredProc должен быть одинаковый для любой поддерживаемой СУБД.
Соловьев (2004-11-15 15:22:00) [5]
> СУБД - Оракл у меня.
ну так сразу писать надо то :) тут я не знаток...
alsov1 (2004-11-15 15:13:00) [6]Процедура компилится и работает, а вашем способом даже и не думает
СУБД - Оракл у меня.
Проблема в вызове процедуры из Делфи.
Соловьев (2004-11-15 13:30:00) [7]
> nowdate := sysdate;
set nowdate = sysdate
Соловьев (2004-11-15 13:29:00) [8]
> nowdate out timestamp)
nowdate timestamp output)
?