• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема Обновления Бд Запросом Update

  • Автор темы FLYer
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

FLYer

Есть БД с контактными данными. Хочу реализовать функцию Изменения существующей записи, путем применения запроса UPDATE.
Вот код:

Код:
with DataModule2.ADOQuery3 do
begin
Active:=false;
SQL.Clear;
SQL.Text:='UPDATE Контакты';
SQL.Text:='SET Фамилия=DBEdit3.Text,Имя=DBEdit1.Text,Отчество=DBEdit2.Text],[Домашний телефон]=DBEdit4.Text],[Рабочий телефон]=DBEdit5.Text],[Мобильный телефон]=DBEdit6.Text],Адрес=DBEdit7.Text';
SQL.Text:='SET [,[e-mail]=DBEdit8.Text,facebook=DBEdit9.Text,twitter=DBEdit10.Text,ВКонтакте=DBEdit11
.Text,ICQ=DBEdit12.Text,[День Рождения]=DateTimePicker1.Date]';
ExecSQl;
SQL.Clear;
SQL.Text:='SELECT * FROM [Контакты]';
Active:=True;
end;

Но выдается вот такая ошибка:

"Project Project1.exe raised exception class EOleException with message:"Ошибочная инструкция SQL; предполагалось 'DELETE, 'INSERT', 'PROCEDURE, 'SELECT или 'UPDATE'."

и выделяется строка с SQL.Clear; перед запросом SELECT. В чем может быть проблема ? Заранее спасибо :)
 
N

nayke

SQL.Text:='SET Фамилия=DBEdit3.Text,Имя=DBEdit1.Text,Отчество=DBEdit2.Text],[Домашний телефон]=DBEdit4.Text],

1. текстовые параметры передаются в кавычках
2. SQL.text это помоему Tstrings а не string но могу ошибаться, посмотрите метод append или еще как то так..
3. откуда появилась "]"

вобщем должно быть примерно так.. код не точный но надеюсь направление понятно
SQL.append('SET фамилия='''+DBEdit3.Text+''',Отчество='''DBEdit2.Text и т.д.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!