Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.57 MB
Время: 0.055 c
3-1100013338
Sergeich
2004-11-09 18:15
2004.12.12
параметры в ADOQuery


14-1101379427
Кирилл
2004-11-25 13:43
2004.12.12
Руководство


14-1100691914
Marser_t
2004-11-17 14:45
2004.12.12
Антология демагогии


14-1101284415
Ricko
2004-11-24 11:20
2004.12.12
"На самом деле"


6-1096646286
BKGG
2004-10-01 19:58
2004.12.12
Sockets





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский