Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.28;
Скачать: CL | DM;

Вниз

выполнение sp с параметрами   Найти похожие ветки 

 
Kelly   (2008-09-30 18:31) [0]

При вызове execute ругается что неверно определен объект параметр

/*в процедуре два параметра, один инпут и один аутпут */

with TADOCommand.Create(Self) do
 try
  Connection := ADOConnection1;
  CommandText := "GET_STATE";
  CommandType := cmdStoredProc;
  with Parameters.AddParameter do
   begin
    Name      := "p_source_id";
    DataType  := ftInteger;
    Direction := pdInput;
    Value     := 13879;
   end;

  with Parameters.AddParameter do
   begin
    Name      := "p_out_state";
    DataType  := ftInteger;
    Direction := pdOutput;
   end;
Execute;
....


 
clickmaker ©   (2008-09-30 18:36) [1]

может, собачку надо перед именем?


 
Kelly   (2008-09-30 18:38) [2]

Не помогает. Пробовал и с собачкой и без. Текст ошибки одинаков


 
clickmaker ©   (2008-09-30 18:48) [3]

а в хранимке out стоит у параметра?


 
sniknik ©   (2008-09-30 19:35) [4]

параметры не нужно создавать, их нужно считывать (рефреш вроде пойдет, не помню давно с процедурами как с cmdStoredProc не работал, явным запросом проще)


 
kaif ©   (2008-09-30 20:15) [5]

CommandText := "GET_STATE";

А где здесь в тексте команды место, где подразумевается использование параметра?


 
sniknik ©   (2008-09-30 20:55) [6]

> где подразумевается использование параметра?
при cmdStoredProc это имя процедуры, параметры запрашиваются с сервера, те с которыми процедура написана.


 
Kelly   (2008-10-01 09:44) [7]

в общем после многих научных тыков удалось вызвать эту процу.

Параметры создаю явно как и было описано выше.

(После refresh длина коллеции параметров возвращает верное значение, но экзек все равно заканчивается неудачей, ""экспектс такой-то параметер вич вазнот сапплаед" )
То есть подозреваю, что после рефреша надо все равно явно выставлять  всем параметрам типы, дирекшен и прочее.

Во вчерашнем коде причина ошибки была в том, что есть еще один аутпут параметр строкового типа. Он создавался точно так же, но ему не был указан Size. После указания длины все поехало как надо.

И еще почему-то когда имя процедуры устанавливаешь в дизайне, с помощью редактора командтекст, то все хранимки видны как <оригинальное_имя>;1

То есть в дизайне у меня присвоилось "GET_STATE;1"



Страницы: 1 вся ветка

Текущий архив: 2009.06.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
3-1222785107
Kelly
2008-09-30 18:31
2009.06.28
выполнение sp с параметрами


2-1241842827
masv
2009-05-09 08:20
2009.06.28
печать DBGridEh


15-1239906098
Kolan
2009-04-16 22:21
2009.06.28
«Интерфейс пользователя» &amp;#8594; Инфоскроллер


4-1212263223
R1ka
2008-05-31 23:47
2009.06.28
HBITMAP, Размеры


2-1241592533
подмастерье
2009-05-06 10:48
2009.06.28
Не работает ComboBox1Change