Главная страница
    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.58 MB
Время: 0.057 c
1-1101630374
UVV
2004-11-28 11:26
2004.12.12
GetTime


3-1100522277
lightix
2004-11-15 15:37
2004.12.12
DBF-ФАЙЛЫ.ЧИСТКА И СОЗДАНИЕ УНИКАЛЬНОГО КЛЮЧА


1-1101399547
Санёк
2004-11-25 19:19
2004.12.12
Создание программ


3-1100438650
Alenka_gal
2004-11-14 16:24
2004.12.12
Как реализовать поиск по тексту


1-1101827590
Sanya
2004-11-30 18:13
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский