Главная страница
    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.48 MB
Время: 0.036 c
9-1118217775
lex(x)
2005-06-08 12:02
2005.10.16
Передвижение камеры!


14-1127732584
Антоний
2005-09-26 15:03
2005.10.16
Календарь


2-1126790196
Unleashed
2005-09-15 17:16
2005.10.16
проблема с выводом в контейнер содержимого файла


3-1125500254
Ramil
2005-08-31 18:57
2005.10.16
где прописывают пользователей с доступом к базам


2-1125786268
Bes
2005-09-04 02:24
2005.10.16
Скорость.... неужели конструктор так тормозит





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский