Вниз
Скачать: 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.013 c
3-74547
Alexsandr (GEG)
2002-12-04 09:52
2002.12.23
DBGrid фокус на ячейку (строку)


3-74624
Maxx2000
2002-12-05 14:02
2002.12.23
Внешний ключ Paradox


1-74786
Кирилл
2002-12-11 11:49
2002.12.23
В чем разница между размером компонента в инспекторе ...


1-74778
jen_bond
2002-12-11 11:27
2002.12.23
Рисование объекта


14-74960
aterm
2002-12-03 11:04
2002.12.23
как отловить вставку из буфера в определенную TMemo?




   Наверх