Вниз
Скачать: CL | DM;

подстановка значения поля в SQL запрос.   Найти похожие ветки 

 
Shapovalov Kirill   (2002-12-05 09:38) [0]

Здравствуйте. Столкнулся с проблемой. Имеется запрос который считает количество студентов в группе. Когда в sql builder"e выполняешь е запрос, то всё хорошо. Во время работы программы я изменяю запрос так
format(Select * from student where gruppa=%s,[Form1.Edit1.text]);
То есть подставляю значения поля. потом выбираю метод execSQL.
И пророга у меня ничего не считает.
Вопросы такие:
1) Как правильно подстанавливать значения полей.
2) Как правильно выполнять запросы.

Спасибо.


 
stone ©   (2002-12-05 09:43) [1]

Используй параметры


 
Max Zyuzin ©   (2002-12-05 09:45) [2]

К тому же метод ExecSQL сипользуется для команд Edit, Update и Delete. Для Select используется Open; (это по второму вопросу),
а по первому - использовать параметры... умеешь?


 
Anatoly Podgoretsky ©   (2002-12-05 09:49) [3]

Две ошибки
1. форматная строка должна быть в одинарных кавычках
2. используешь не тот метод, надо Open


 
neXt ©   (2002-12-05 09:49) [4]

в тексте запроса нужно написать что-то вроде

Select * from student where gruppa = :group

в свойстве Query.Params, в дизайн-тайме, нужно указать тип данных для параметра (DataType), например целое.
а в обработчике события OnBeforeOpen у Query написать что-то вроде.

Query.ParamByName("group").AsInteger := 1000;
// ну или что-там нужно



 
Shapovalov Kirill   (2002-12-05 09:50) [5]

Нет. :( Где про это почитать? Или хотя бы синтаксис команды. в хелпе поковыряю.


 
Max Zyuzin ©   (2002-12-05 10:32) [6]

>Shapovalov Kirill (05.12.02 09:50)
http://www.citforum.ru/programming/32less/index.shtml
Целая книга по Дельфи.
Почитай про работу с БД.
И поищи вообще на этом сайте, там много еще чего есть.

В твоем варианте должно быть примерно так...
Query1.SQL.Clear;
Query1.SQL.Add("Select * from student where gruppa = :group");
Query1.ParamByName("group").AsInteger := 1000;
// Тут все зависит от того какого типа у тебя поле gruppa...
QUery1.Open;



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-74695
DAT
2002-12-11 11:44
2002.12.23
PopUpMenu для самого меню


4-75034
bent
2002-11-09 09:22
2002.12.23
Как узнать кодировку файла?


6-74877
Romych
2002-10-24 12:26
2002.12.23
Извините что вопрос немного не в тему UDP


14-74975
spb
2002-12-03 15:05
2002.12.23
Просто так


6-74864
Pali
2002-10-16 07:42
2002.12.23
NMHTTP1.Post(...) - Почему это не работает в Delphi?




   Наверх