Главная страница
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.014 c
15-1240691404
Юрий
2009-04-26 00:30
2009.06.28
С днем рождения ! 26 апреля 2009 воскресенье


15-1240397060
12
2009-04-22 14:44
2009.06.28
Мулдашев Эрнст. Книги


2-1241774258
Alex7
2009-05-08 13:17
2009.06.28
TRANSFORM в тексте ADO, MS SQL


2-1242128203
Дмитрий
2009-05-12 15:36
2009.06.28
Пара вопросов по компоненту Memo.


15-1240846100
Маэстро
2009-04-27 19:28
2009.06.28
F.A.Q. по описанию программы