Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос [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)+'''';


Наверх

Титульная страница Поиск, карта сайта Написать письмо