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

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

"правильное" выполнение запросов [D7, firebird 1.5]


Tab ©   (2005-09-20 11:30:00) 

В программе выполняются запросы, делаю следующим образом:

   Dm.IBQuery2.Close;
   Dm.IBQuery2.SQL.Clear;
   Dm.IBQuery2.SQL.Add('INSERT INTO DISCIP (DISCIPLINA, SPEC_ID, SEMESTR, PR_ID, TD)');
   Dm.IBQuery2.SQL.Add('VALUES ('''+discip.Text+''','+IntToStr(cod_sp2)+','+smstr.Text+', '+IntToStr(cod_pr2)+', '+IntToStr(td)+')');
   Dm.IBQuery2.ExecSQL;
думаю разницы между параметрезированными запросами не будет? Кто как делает?


Sergey13   (2005-09-21 15:51:00) [1]

2[15] Tab   (21.09.05 15:43)
> ну так там переписывать только sql  
Мало? А если SQL на полстраницы?
Или такой случай. В цикле вызывается запрос и иногда обработка уходит в другую процедуру, где этот же запрос переписывается. Что делать?


Tab   (2005-09-21 15:43:00) [2]


> Зато тебе наверное понравится прога, где с одним квериком
> работают в 100-150 местах кода этой проги полностью переписывая
> его свойства. 8-)

ну так там переписывать только sql  :-), но все равно спасибо , наверное теперь пойду другим путем :-).


evvcom   (2005-09-21 14:14:00) [3]


> т.е. для каждой формы, кидать в datamodule query

У меня каждая форма работает с одним двумя DataSet-ами, поэтому я их кидаю прямо на форму, а не в Датамодуль.

> и работать только с ним?

Да, работать только с ним.


Sergey13   (2005-09-21 10:27:00) [4]

2[12] Tab   (21.09.05 10:21)
Зато тебе наверное понравится прога, где с одним квериком работают в 100-150 местах кода этой проги полностью переписывая его свойства. 8-)


Tab   (2005-09-21 10:21:00) [5]

т.е. для каждой формы, кидать в datamodule query и работать только с ним?
просто видел как то программу где в этом datamodule штук 50-60 ibquery, не понравилось, почему не знаю.


evvcom   (2005-09-21 09:24:00) [6]


> Dm.IBQuery2.Close;
> ...
> Dm.IBQuery2.ExecSQL;

Это очень интересное решение. :)

Почему народ так тянется к динамически создаваемым запросам? Типа экономия ресурсов? Да на коде в этом случае больше потеряешь.


Sergey13   (2005-09-21 09:19:00) [7]

2[7] Tab   (20.09.05 17:38)
А нафига вообще константа какая то? Кинь на форму (или, что правильнее, в датамодуль) кверик, пропиши ему запрос и определи параметры. Перед выполнением присвой параметрам значения.


Tab   (2005-09-20 19:38:00) [8]

всем спасибо за ответы


ANB   (2005-09-20 19:24:00) [9]

Совет : не мучай add, нарвешься на ошибку. Есть sql.text. Вот и засовывай туда запрос.


Tab   (2005-09-20 17:38:00) [10]

ну т.е. объявляю константу строковую, потом просто
sql.add(str_const);
и потом параметры заносить. так?


Sergey13   (2005-09-20 12:28:00) [11]

2[5] Tab   (20.09.05 12:24)
Белиберда какая то, ИМХО.


Tab   (2005-09-20 12:24:00) [12]

ok, с этим понятно значит тогда получается так,
объявляю такого типа переменную:
const
QGetStudID =
'SELECT STUD.ID, STUD.ST_MDL_ID FROM STUD WHERE ((STUD.ST_FIO = :ST_FIO ))';
объявлять можно в каждом отдельно или лучше общем (в том же datamodule?)


ANB   (2005-09-20 12:02:00) [13]

Параметры надежнее и удобнее.


Os   (2005-09-20 11:41:00) [14]

Будут глюки со строками как минимум. Например строка: hi'
Параметры надежней


Sergey13   (2005-09-20 11:35:00) [15]

>думаю разницы между параметрезированными запросами не будет?
Будет. Т.е. результат будет одинаковый, но затраты сервера на их выполнение разные. Плюс параметры позволяют делать проще и надежнее работу с датами и строками со всякими там кавычками и т.п. внутри.


Val   (2005-09-20 11:33:00) [16]

я так не делаю.


Наверх

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