![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TQuery
AntonSh © (2004-02-13 15:09:00)
Есть такой код :
var
a: string;
vQ: TQuery;
b: integer;
begin
a:= "Select * from ...";
vQ.Clear;
vQ.Add(a);
vQ.Open;
...
...
end;
Могу ли я после этого сразу использовать выражение типа
b := vQ.FieldByName("...").AsInteger;
или нужно сделать ExecSQL
kaif (2004-02-14 04:55:00) [1]
Да еще рекомендуется создавать экземляр, а потом все делать в блоке защищенных ресурсов try-finally-end:
vQ := TQuery.Create(nil);
try
...
finally
vQ.Free;
end;
Дело в том, что существуют ситуации, когда при открытии запроса происходит ошибка (например, недоступен сервер). И вообще это хороший стиль.
Я обычно использую конструкции с with. Например:
with TIBQuery.Create(nil) do
try
Transaction := ...
SQL.Text := ...
Open;
... = FieldByName("...").AsInteger;
finally
Free;
end;
Johnmen (2004-02-13 22:40:00) [2]
>Desdechado © (13.02.04 17:22)
Забыл после создания - определить свойства...:)
Desdechado (2004-02-13 17:22:00) [3]
сначала надо создать
vQ:=TQuery.Create( Application );
потом использовать (Open и есть открытие результата запроса SELECT)
в конце не забудь сделать vQ.Close; vQ.Free;
Vlad (2004-02-13 15:45:00) [4]
> menart © (13.02.04 15:15) [1]
> Ты открыл уже! > vQ.Open;
> это и есть ExecSQL
Это не есть ExecSQL.
В данной конструкции ExecSQL не нужен.
Johnmen (2004-02-13 15:35:00) [5]
А где создание объекта vQ ???????????????7
menart (2004-02-13 15:15:00) [6]
Ты открыл уже! > vQ.Open;
это и есть ExecSQL