Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL запрос [D7, MSSQL]


squirrel ©   (2007-12-27 16:54:00) 

Здравствуйте. Есть база, созданная на SQL Server'е. Она связана с программой на дельфи через компоненты ADO. В базе есть таблица Person. При нажатии на кнопку я пишу такой запрос к базе для компонента типа TADOCommand:

ADOCommand1.CommandText:='SELECT id FROM person WHERE FIO='+edit1.Text+' and technopark = (select max(id) from technopark where name = '+Combobox1.Text+') and post="'+Edit2.Text;

при выполнении этого запроса я хочу получить значения поля person.id для записи, у которой значение поля FIO совпадает со значением введенным в edit1, значение поля technopark совпадает со значением выбранным в combobox1, и значение поля postсовпадает со значением, введенным в edit2.

При выполнении этого запроса возникает ошибка, заключающаяся в том, что при введении ФИО и в названии технопарков имеются пробелы. Подскажите, пожалуйста как оптимизировать запрос. Я просто только начинаю разбираться в базах данных


VadimSpb   (2008-01-02 20:07:00) [1]


> clickmaker ©   (27.12.07 16:59) [1]

ADOCommand1.CommandText:='SELECT id FROM person WHERE FIO=:FIO and technopark = (select max(id) from technopark where name = :PARKNAME) and post=:POST';
ADOCommand1.ParamByname('FIO').AsString := Edit1.Text;
ADOCommand1.ParamByname('PARKNAME').AsString := Combobox1.Text;
ADOCommand1.ParamByname('POST').AsString := Edit2.Text;

ADOCommand начал возвращать значения с 01.01.2008?


Anatoly Podgoretsky   (2007-12-27 17:53:00) [2]

> squirrel  (27.12.2007 16:54:00)  [0]

Параметры, параметры и еще раз параметры.


squirrel   (2007-12-27 17:03:00) [3]

Спасибо)


clickmaker   (2007-12-27 16:59:00) [4]

ADOCommand1.CommandText:='SELECT id FROM person WHERE FIO=:FIO and technopark = (select max(id) from technopark where name = :PARKNAME) and post=:POST';
ADOCommand1.ParamByname('FIO').AsString := Edit1.Text;
ADOCommand1.ParamByname('PARKNAME').AsString := Combobox1.Text;
ADOCommand1.ParamByname('POST').AsString := Edit2.Text;

суть в том, что в SQL-запросах строки должны быть в кавычках, а даты еще и в соотв. формате, поэтому лучше использовать параметры


Виталий Панасенко(дом)   (2007-12-27 16:59:00) [5]

используй параметры и "все пройдет, и печаль.. .".. останется одна радость


Наверх

Титульная страница Поиск, карта сайта Написать письмо