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

Вниз

ODAC. Параметризованные запросы.   Найти похожие ветки 

 
checkmate-maker   (2008-09-15 09:28) [0]

Здравствуйте. Помогите разобраться.
После выполнения следующего участка кода сообщение не выдается(запрос пустой - ничего не вернул, но и не ругался)

var
 lOpenSQL: TOpenSQL;

...

 lSQLString := "Select sec_name from pr_sec where sec_id = :S_ID";
 lOpenSQL := TOpenSQL.CreateWithParams(lSQLString);
 try
   lOpenSQL.DeclareVariable("S_ID", ftInteger);
   lOpenSQL.SetVariable("S_ID", 0);
   lOpenSQL.ReOpen;
   if not lOpenSQL.IsDone then
     ShowMessage(lOpenSQL.FieldAsString(0));
 finally
   lOpenSQL.Free;
 end;


Уточню TOpenSQL класс с приватным FOraQuery: TOraQuery.
Метод CreateWithParams:

 FOraQuery := TOraQuery.Create(nil);
 FOraQuery.Connection := Form1.OraSession1;
 FOraQuery.SQL.Text := SQL;

Метод DeclareVariable:

 FOraQuery.Params.CreateParam(AType, AName, ptInput);

Метод SetVariable:

 FOraQuery.ParamByName(AName).Value := AValue;

Метод ReOpen:

 FOraQuery.Open;

Метод IsDone:

 Result := FOraQuery.Eof;


 Чтобы исключить лишние уточнения добавлю: запрос без параметров работает "на ура". ODAC 5.1.

 Спасибо за помощь.


 
Поросенок Винни-Пух ©   (2008-09-15 09:58) [1]

Зачем этот изврат?

FOraQuery.Params.CreateParam(AType, AName, ptInput);


 
Sergey13 ©   (2008-09-15 10:01) [2]

> [0] checkmate-maker   (15.09.08 09:28)
> запрос пустой - ничего не вернул, но и не ругался

Ну так наверное нет значений с S_ID=0.
А какой смысл во всех ухищрениях с подменой методов?


 
Поросенок Винни-Пух ©   (2008-09-15 10:05) [3]

передать из обертки текст sql, установить значение параметра. все.


 
checkmate-maker   (2008-09-15 10:42) [4]

Всем спасибо за участие в решении вопроса.

 Я разобрался сам. Необходимо было устанавливать
FOraQuery.ParamCheck := false;

 Надеюся решение кому-нибудь пригодится. В инете подобного не нашел.


 
Поросенок Винни-Пух ©   (2008-09-15 10:43) [5]

Это в штатной доке описано черным по белому


 
ANB   (2008-09-15 17:54) [6]


> checkmate-maker   (15.09.08 09:28)

Делаем из одака доа ?



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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
15-1237587047
Германн
2009-03-21 01:10
2009.05.24
Компания Embarcadero приглашает принять участие в семинаре


11-1200936173
Ash-911
2008-01-21 20:22
2009.05.24
Добавление пути в дерево


2-1239612264
Kolan
2009-04-13 12:44
2009.05.24
Почему вызывается деструктор фрейма созданного *.Create(nil)?


2-1239266420
Андрей_1
2009-04-09 12:40
2009.05.24
Выловить окончание работы плеера


2-1239343514
Гость
2009-04-10 10:05
2009.05.24
Работа с потоками.