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

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

Знаки препинания в строке 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 тип данных на числовой не прокатит: "слишком легко у тебя всё получается" :)


Наверх

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