Главная страница
    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.46 MB
Время: 0.042 c
4-1098727684
Anti
2004-10-25 22:08
2004.12.12
Работа со службами


14-1101379739
Kerk
2004-11-25 13:48
2004.12.12
"С днем рожденья" по-болгарски


6-1096646370
квакер
2004-10-01 19:59
2004.12.12
POP3 Using


4-1098942649
Гость
2004-10-28 09:50
2004.12.12
Как сделать чтобы программа получала админские права при запуске


3-1100437995
denis24
2004-11-14 16:13
2004.12.12
паковка *.mdb





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