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