Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: CL | DM;

Вниз

Помогите пожалуста правильно написать SQL-запрос !   Найти похожие ветки 

 
Nil ©   (2003-01-08 12:07) [0]

На самом деле программа большая, поэтому свою проблему оформила небольшим примером.
У меня есть таблица(формат 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+"")");


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

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


 
Nil ©   (2003-01-08 12:13) [2]

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


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

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


 
Alexander_K ©   (2003-01-08 12:34) [4]

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


 
Alexander_K ©   (2003-01-08 12:37) [5]

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


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

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


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

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


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

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


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

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


 
stone ©   (2003-01-08 13:49) [10]

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




 
Johnmen ©   (2003-01-08 13:55) [11]

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


 
Delirium^.Tremens ©   (2003-01-08 13:57) [12]

Johnmen © (08.01.03 13:55)

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

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


 
Nil ©   (2003-01-08 18:29) [13]

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


 
Val ©   (2003-01-08 18:56) [14]

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


 
Nil ©   (2003-01-08 19:34) [15]

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


 
petr_v_a ©   (2003-01-08 19:38) [16]

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


 
stone ©   (2003-01-09 09:38) [17]

2 Nil © (08.01.03 19:34)

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




Страницы: 1 вся ветка

Текущий архив: 2003.01.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
9-86605
Uki
2002-07-22 15:02
2003.01.27
Создание спрайта


14-87075
SoloD
2003-01-08 09:12
2003.01.27
Не могу обновить Internet Explorer до 6-й версии.


3-86664
775
2003-01-06 17:30
2003.01.27
BLOB has been modified


7-87160
opoloXAI
2002-11-07 15:53
2003.01.27
Блокировка компьтера


3-86708
Pat
2003-01-06 23:52
2003.01.27
Глюк BDE