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

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

Помогите пожалуста правильно написать SQL-запрос ! [D5, Access]


Nil ©   (2003-01-08 12:07:00) 

На самом деле программа большая, поэтому свою проблему оформила небольшим примером.
У меня есть таблица(формат Access), из нее нужно выбрать конкретного человека. Его фамилия вводится в Edit1(находится на форме), для поиска существует кнопка, результат выводиться в DBGid1.

procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("SELECT Fam, Nam, Otch, Vozr");
Query1.SQL.Add("FROM Tabl_kor Tabl_kor");
Query1.SQL.Add("WHERE (Fam =""+Edit1.Text+"")");
Query1.Open;
if Query1.RecordCount<>0 then
begin
DataSource1.DataSet:=Query1;
end;
end;

Выполняется до ввода Edit1.Text, затем на Ореn выдает ошибку, т.е. ошибка в строке Query1.SQL.Add("WHERE (Fam =""+Edit1.Text+"")");


stone   (2003-01-09 09:38:00) [1]

2 Nil © (08.01.03 19:34)

QuotedStr преобразует строку типа: qqqqq в "qqqqq"
Применений масса :))
Все описание есть в хэлпе (press F1)


petr_v_a   (2003-01-08 19:38:00) [2]

А зачем такие сложности? Не проще ли использовать запрос с параметрами?


Nil   (2003-01-08 19:34:00) [3]

Огромное спасибо Всем за помощь ! Прошел вариант без ошибки, предложенный STONE ! Прошу подробнее описать, в каких случаях нужно использовать QuotedStr, в своей литературе его не нашла.


Val   (2003-01-08 18:56:00) [4]

И все-таки забрюзжу и попрошу пользоваться параметрами.
Избавит от подобных проблем и добавит хорошего тона в код. :)


Nil   (2003-01-08 18:29:00) [5]

Спасибо за советы! Буду пробовать, завтра к обеду сообщу результат!


Delirium^.Tremens   (2003-01-08 13:57:00) [6]

Johnmen © (08.01.03 13:55)

> И в догонку - если Add, то + пробел в конце каждой добавляемой
> строки, если Append, то оставить, как есть...

Угу, а чтобы не думать, лучше всегда + пробел :-)


Johnmen   (2003-01-08 13:55:00) [7]

И в догонку - если Add, то + пробел в конце каждой добавляемой строки, если Append, то оставить, как есть...


stone   (2003-01-08 13:49:00) [8]

Query1.SQL.Add(" WHERE Fam = " + QuotedStr(Edit1.Text));



Dona   (2003-01-08 13:06:00) [9]

Может, одинарые кавычки (апостроф) ввести 2 раза " => ""
или " " => ""?


Наталия   (2003-01-08 13:04:00) [10]

Query1.SQL.Add("SELECT Fam, Nam, Otch, Vozr");
Query1.SQL.Add("FROM Tabl_kor");
Query1.SQL.Add("WHERE Fam=""+Edit1.Text+""");


Verg   (2003-01-08 13:00:00) [11]

Напишите, уже на конец, какую именно ошибку-то дает


Nil   (2003-01-08 12:56:00) [12]

Если убрать двойные кавычки, то появляется синтаксическая ощибка!


Alexander_K   (2003-01-08 12:37:00) [13]

То есть в результате запроса должно получиться:
SELECT Fam, Nam, Otch, Vozr FROM Tabl_kor where fam = "петров"


Alexander_K   (2003-01-08 12:34:00) [14]

И еще, помоему, в SQL запросах значения строковых полей указываются в одинарных кавычках а не в двойных.


Наталия   (2003-01-08 12:30:00) [15]

Скобки в where для чего?


Nil   (2003-01-08 12:13:00) [16]

Имя таблицы второй раз можно убрать, но результат тотже!


Наталия   (2003-01-08 12:11:00) [17]

Имя таблицы зачем 2 раза написано?


Наверх

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