![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запрос [D7, IB6.x]
Belkova © (2004-10-06 13:05:00)Мастера, delphi. Подскажите, пожалуйста как написать запрос. Понимаю, что вопрос глупый.
With IBQuery do
begin
Close;
Sql.Clear;
Sql.Add('Select * from table Where Pole='+Edit.Text);
Open;
end;
в таком виде ругается. Можно через параметр. а так как-то можно?
Vlad (2004-10-06 13:36:00) [1]Не только в скорости дело.
Проблемы могут быть с преобразованием дат или дробных чисел (если на сервере одни настройки а на клиенте другие)
Параметризированный запрос исключает такие глюки.
Belkova (2004-10-06 13:35:00) [2]Спасибо.
Sergey_Masloff (2004-10-06 13:27:00) [3]Belkova (06.10.04 13:14) [6]
>Если не секрет, почему лучше параметрами?
Потому что быстрее на порядок. В какой-нибудь утилите посмотри статистику запроса сколько уходи на разбор а сколько на фактический фетч. С параметром разбор происходит только 1 раз в твоем случае - на каждый.
Belkova (2004-10-06 13:14:00) [4]Если не секрет, почему лучше параметрами?
msguns (2004-10-06 13:12:00) [5]>Belkova (06.10.04 13:05)
>Sql.Add('Select * from table Where Pole='+Edit.Text);
Sql.Add('Select * from table Where Pole='+ QuotedStr(Edit.Text));
Если, конечно, поле символьное.
А вообще-то при переоткрытии (если я правильно понял) лучше пользоваться параметрами.
Belkova (2004-10-06 13:11:00) [6]спасибо.
Belkova (2004-10-06 13:10:00) [7]VarChar(30)
Vlad (2004-10-06 13:08:00) [8]
> Belkova (06.10.04 13:05)
Поле "Pole" какой имеет тип?
P.s. Close не нужен, когда Sql.Clear делаешь, Close автоматически срабатывает.
stud (2004-10-06 13:08:00) [9]
> Sql.Add('Select * from table Where Pole='''+Edit.Text)+'''';