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

Вниз

подстановка значения поля в 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 вся ветка

Форум: "Базы";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
3-74622
newe
2002-12-05 14:28
2002.12.23
Delphi + Access


1-74635
bambina
2002-12-12 13:12
2002.12.23
TTreeview


14-74987
AlexZ
2002-11-28 08:22
2002.12.23
Утечка памяти, или..?


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


1-74645
Феликс
2002-12-12 18:30
2002.12.23
Ttreeview?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский