Главная страница
    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.035 c
8-1093948946
Сашок
2004-08-31 14:42
2004.12.12
Отступ от точек


1-1101806596
mouse_web
2004-11-30 12:23
2004.12.12
Компиляция exe (проблема запуска на другом компьютере)


4-1097751044
Руслан
2004-10-14 14:50
2004.12.12
Вопрос про АЦП


1-1101310313
Frozzen
2004-11-24 18:31
2004.12.12
Освобождение памяти


14-1101306128
OneFragLeft
2004-11-24 17:22
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский