Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2011, 14:47   #1
Elegance3
Пользователь
 
Регистрация: 12.10.2011
Сообщений: 30
По умолчанию Изменение данных в БД запросом UPDATE

Есть БД с контактными данными. Хочу реализовать функцию Изменения существующей записи, путем применения запроса 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. В чем может быть проблема ? Заранее спасибо
Elegance3 вне форума Ответить с цитированием
Старый 03.12.2011, 15:16   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Строковые (текстовые) значения должны заключаться в одинарные кавычки (с помощью функции проще). Например:
Код:
QuotedStr(DBEdit1.Text)
Прик вне форума Ответить с цитированием
Старый 03.12.2011, 15:33   #3
Elegance3
Пользователь
 
Регистрация: 12.10.2011
Сообщений: 30
По умолчанию

не работает(( та же ошибка((
Elegance3 вне форума Ответить с цитированием
Старый 03.12.2011, 15:40   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Нонсенс:
Код:
SQL.Text:='UPDATE Контакты';
SQL.Text:='SET Фамилия=...
SQL.Text:='SET ...
Свойство Text нельзя заменять в каждой строке, т.к. последнее присвоение и будет актуальным, т.е. в SQL.Text будет вот это значение:
Код:
'SET [,[e-mail]=DBEdit8.Text,facebook=...
Просто надо заменить три присвоения одним:
Код:
SQL.Text:='UPDATE Контакты'+...

Последний раз редактировалось Прик; 03.12.2011 в 15:53.
Прик вне форума Ответить с цитированием
Старый 03.12.2011, 16:34   #5
Elegance3
Пользователь
 
Регистрация: 12.10.2011
Сообщений: 30
По умолчанию

про sql.text буду знать.
теперь выдается ошибка :"Неверный синтаксис запроса UPDATE" или "Неопределенная функция QuotedStr"(((
Elegance3 вне форума Ответить с цитированием
Старый 03.12.2011, 17:37   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных HTTP запросом Aleskandr Помощь студентам 2 23.08.2011 08:39
получение текстовых данных SQL запросом R Dmitry Microsoft Office Excel 3 01.05.2011 01:29
Добавить строку в longtext одним Update запросом Alar SQL, базы данных 1 02.02.2011 18:11
Условие на UPDATE данных nikta БД в Delphi 4 14.05.2010 15:45
Update данных KiSH333 БД в Delphi 2 01.12.2008 13:28