![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите пожалуста правильно написать 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 раза написано?