Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.07.2009, 16:48
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию как сделать обновление нескольких...

Пытаюсь обновить таким во запросом
Код:
adoquery1.sql.text:='UPDATE table1 SET fio = ' + QuotedStr(Edit2.Text) + ',nick ='+ QuotedStr(Edit4.Text) +',ip = '+ QuotedStr(Edit5.Text) +',icq = '+ QuotedStr(Edit6.Text) +',info = '+ QuotedStr(Edit7.Text) +' ]
 WHERE id='+Edit1.Text+ '';

lmikle: Не забываем про теги.

Не получается скомпилировать проект...
Я в sql мало знаю, только учусь .
Напишите пожалуйста правельный sql запрос..
Ответить с цитированием
  #2  
Старый 09.07.2009, 16:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,026
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
adoquery1.sql.text:='UPDATE table1 SET'#13#10+
                            'fio = ' + QuotedStr(Edit2.Text) + ','#13#10 +
                            'nick = '+ QuotedStr(Edit4.Text) + ','#13#10 +
                            'ip = '+ QuotedStr(Edit5.Text) + ','#13#10 +
                            'icq = '+ QuotedStr(Edit6.Text) + ','#13#10 +
                            'info = '+ QuotedStr(Edit7.Text) + #13#10 +
                            'WHERE id='+Edit1.Text;

Вот так должно сработать.
1. Разбивка на строки повышает читабелдьность.
2. У тебя там откудато приплыла кв. скобка и пробел зачем-то лишний в конце, хотя он, пробел, рояля, конечно, не играет, но нефиг.
3. А еще лучше использовать функцию format или параметризованный запрос. в этом случае ты нормально видишь сам запрос и сразу видны ошибки в нем, если таковые есть.
Ответить с цитированием
  #3  
Старый 09.07.2009, 16:59
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

огромное спасибо ,учту в дальнейшем
А что такое #13#10
Ответить с цитированием
  #4  
Старый 09.07.2009, 17:24
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Одна проблема ...я обновляю ,как ты говоришь и заношу данные вот так
Код:
ADOQuery1.Insert;
ADOQuery1.FieldByName('fio').AsString := Edit2.Text;
adoquery1.FieldByName('id').AsString := Edit1.Text;
adoquery1.FieldByName('nick').AsString := Edit4.Text;
adoquery1.FieldByName('ip').AsString := Edit5.Text;
adoquery1.FieldByName('icq').AsString := Edit6.Text;
adoquery1.FieldByName('info').AsString := Edit7.Text;

ADOQuery1.Post;
если все поля числовые то проблем с внесение и обновление нету ...но если написать в какую нибудь текст то ошибка
'ТЕКСТ' is not a valid integer value for field 'и мое поле'
а если обновлять ,и поставить текст вместо чисел то пишет, несоответствие типов данных в выражении условия отбора

Последний раз редактировалось Booo, 09.07.2009 в 18:57.
Ответить с цитированием
  #5  
Старый 10.07.2009, 02:55
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

ну значит ты пытаешься записать в поле c типом integer значение типа string, подозреваю, что это поле ID.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter