Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

"правильное" выполнение запросов   Найти похожие ветки 

 
Tab   (2005-09-20 11:30) [0]

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

   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;
думаю разницы между параметрезированными запросами не будет? Кто как делает?


 
Val ©   (2005-09-20 11:33) [1]

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


 
Sergey13 ©   (2005-09-20 11:35) [2]

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


 
Os ©   (2005-09-20 11:41) [3]

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


 
ANB ©   (2005-09-20 12:02) [4]

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


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

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


 
Sergey13 ©   (2005-09-20 12:28) [6]

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


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

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


 
ANB ©   (2005-09-20 19:24) [8]

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


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

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


 
Sergey13 ©   (2005-09-21 09:19) [10]

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


 
evvcom ©   (2005-09-21 09:24) [11]


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

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

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


 
Tab   (2005-09-21 10:21) [12]

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


 
Sergey13 ©   (2005-09-21 10:27) [13]

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


 
evvcom ©   (2005-09-21 14:14) [14]


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

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

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

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


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


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

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


 
Sergey13 ©   (2005-09-21 15:51) [16]

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



Страницы: 1 вся ветка

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.026 c
3-1125477648
Max Zyuzin
2005-08-31 12:40
2005.10.16
Помогите составить SQL запрос


14-1127301450
TUser
2005-09-21 15:17
2005.10.16
Лекция Вирта - фотографии


14-1127366703
Starcom
2005-09-22 09:25
2005.10.16
Определение Noname Материнки?


1-1127496363
френк
2005-09-23 21:26
2005.10.16
Z-order, но вопрос другой )


2-1125918658
Андрей гость
2005-09-05 15:10
2005.10.16
что такое alias