Главная страница
    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.059 c
1-1101515434
Sirakuz
2004-11-27 03:30
2004.12.12
Delphi 8: TBytes ??


3-1100080159
diabolik_krsk
2004-11-10 12:49
2004.12.12
Удаление файла *.ldb


1-1100705690
Sicilla
2004-11-17 18:34
2004.12.12
Ошибка в delphi 7


3-1100590139
dron-s
2004-11-16 10:28
2004.12.12
По строчное выделение в таблице


4-1098947073
Ivolg
2004-10-28 11:04
2004.12.12
Ярлык





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