![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Знаки препинания в строке ADOQuery1.SQL.Add('SET ... !!!
Первокурсница © (2010-09-19 15:38:00)Доброго времени суток!
Мне нужно отредактировать записи в базе данных "Телефонный справочник", где в таблице "Таблица 1" присутствуют следующие поля:
IDCode (АйДи-код абонента)-числовой тип данных
FName (Имя)-текстовый тип данных
LName (Отчество)-текстовый тип данных
PhName (Фамилия)-текстовый тип данных
City (Город)-текстовый тип данных
Street (Улица)-текстовый тип данных
House (Дом)-текстовый тип данных
Kv (Квартира)-текстовый тип данных
PhoneNum (Номер телефона)-текстовый тип данных
Необходимо написать процедуру в Delphi, позволяющую редактировать записи в справочнике.
Вот эта процедура:
procedure TForm1.BitBtn3Click(Sender: TObject); {Редактирование записей}
begin
ADOQuery1.Active:=false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Таблица1');
ADOQuery1.SQL.Add('SET IDCode='+Edit1.Text+', FName='+' "'+Edit2.Text+'" '+', LName='+' "'+Edit3.Text+'" '+', PhName='+' "'+Edit4.Text+'" '+', City='+' "'+Edit5.Text+'" '+', Street='+' "'+Edit6.Text+'" '+', House='+' "'+Edit7.Text+'" '+', Kv='+' "'+Edit8.Text+'" '+', PhoneNum='+' "'+Edit9.Text");
ADOQuery1.SQL.Add('WHERE IDCode='+IntToStr(X));
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Text:='SELECT * FROM Таблица1';
ADOQuery1.Open;
end;
Но у меня у чайника возникли проблемы со знаками препинания в строке ADOQuery1.SQL.Add('SET ... : [Error] LAB3_SPR.pas(101): Illegal character in input file: '"' ($22)
В нашей чудесной методичке пример этой процедуры только с типом данных "счётчик" и "числовой", насчёт текстового "догадайся мол сама". Я так понимаю что я просто неправильно леплю апострофы. Перепробовала кучу вариантов - бесполезно. Просидела полдня. Уже глаз дёргается. Подскажите пожалуйста!
Плохиш (2010-09-19 22:24:00) [1]Оставьте ребёнка учиться.
Anatoly Podgoretsky (2010-09-19 21:40:00) [2]> sniknik (19.09.2010 21:37:07) [7]
Я все осознала, можно мне теперь оптимально писать, с использование
правильных компонент и с использованием параметров?
sniknik (2010-09-19 21:37:00) [3]> Преподаватель яростно выступает против параметров, он у нас со своими убеждениями:(
может у него цель обучить вас писать запросы полностью самостоятельно, "ручками", для начала, чтобы осознать в дальнейшем необходимость использования параметров.
кстати, а против ADOQuery он не возражает?
> Плохой человек.
Anatoly Podgoretsky (2010-09-19 19:26:00) [4]> Первокурсница (19.09.2010 19:02:05) [5]
Плохой человек.
Первокурсница (2010-09-19 19:02:00) [5]Огромное Вам спасибо, дай Бог Вам здоровья! =)
Преподаватель яростно выступает против параметров, он у нас со своими убеждениями:(
Anatoly Podgoretsky (2010-09-19 18:01:00) [6]Надо использовать параметры.
Плохиш (2010-09-19 16:49:00) [7]
> FName='+' "'+Edit2.Text+'" '+
FName=' + AnsiQuotedStr(Edit2.Text, '''') +
_Юрий (2010-09-19 16:12:00) [8]
> "'+Edit9.Text");
"'+Edit9.Text + ' " ');
А вообще конечно надо параметры использовать. Потому что в Edit'ы можно ввести такое, что как минимум не сработает, а как максимум - испортит данные
Первокурсница (2010-09-19 15:41:00) [9]Вариант поменять в Access тип данных на числовой не прокатит: "слишком легко у тебя всё получается" :)