Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
1-1127876176
Bigman
2005-09-28 06:56
2005.10.16
Как перенести Код из Visual Basic в Delphi?


4-1124088075
Арсений
2005-08-15 10:41
2005.10.16
8 БИТ И ВСЕ, ВСЕ, ВСЕ…


3-1122637660
tanya
2005-07-29 15:47
2005.10.16
Как найти (все) MSSQL серверы в локальной сети


2-1127113142
CW014
2005-09-19 10:59
2005.10.16
массив из классов TStrings


2-1127120457
Новичок1
2005-09-19 13:00
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский