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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2012, 19:03   #1
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию В чем ошибка при SQL запросе

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
 
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
 
ADOQuery1.SQL.Add('INSERT INTO users(a1,a2,a3,a4,a5,a6,a7) VALUES('''+edit1.Text+','+edit2.Text+','+edit3.Text+','+edit4.Text
+','+edit5.Text+','+edit6.Text+','+edit7.Text+''')');
 
ADOQuery1.ExecSQL;
 
end;
При SQL запросе INSERT гдето ошибка, там походу синтаксическая ошибка, в значениях, как правильно написать?
Или я с запятыми намудрил или с кавычками.
Мудр тот, кто знает нужное, а не многое.


Последний раз редактировалось Stilet; 08.04.2012 в 19:05.
Arsenx777 вне форума Ответить с цитированием
Старый 08.04.2012, 19:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
'''
Зачем? Ты все параметры окутываешь в строку? Какие у тебя типы полей?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.04.2012, 19:20   #3
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

текстовое поле, а как надо? я просто первый раз на delphi c БД работаю, до этого только на php
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 08.04.2012, 19:46   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Не помню точно как в ADO, но в Firebird это делается (через параметры) так:
Код:
  pFIBQuery1.Close;
  pFIBQuery1.SQL.Text:='INSERT INTO TABLE_S(ONR,ONT) VALUES (:R,:T)';
  pFIBQuery1.ParamByName('R').Value:=Trim(sEdit2.Text);
  pFIBQuery1.ParamByName('T').Value:=Trim(sEdit4.Text);
  pFIBQuery1.ExecQuery;
смысл ясен? Используй параметры. А как это делается в ADO - посмотри на форуме тут или в гугле. Информации достаточно.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.04.2012, 19:48   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Надо тогда каждый эдит в ковычки:
Код:
VALUES('+QuotedStr(edit1.Text)+','+QuotedStr(edit2.Text)+...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.04.2012, 19:51   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вариантов много, вот один из них
Код:
s:=Format('INSERT INTO users(a1,a2,a3,a4,a5,a6,a7) VALUES(''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'')',[edit1.Text,edit2.Text,edit3.Text,edit4.Text,edit5.Text,edit6.Text,edit7.Text]);
ADOQuery1.SQL.Add(s);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.04.2012, 20:02   #7
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

спасиб братиш) уже с утра не мог разобрать не на одном форуме не помогали)

Если я могу комут помоч, то помогаю...
Мудр тот, кто знает нужное, а не многое.


Последний раз редактировалось Arsenx777; 08.04.2012 в 20:04.
Arsenx777 вне форума Ответить с цитированием
Старый 08.04.2012, 20:16   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
InterBase.SQL.Ошибка при запросе к бд. athleet БД в Delphi 3 09.04.2012 19:58
с++ ошибка при SQL запросе lblondy Помощь студентам 0 07.03.2012 19:20
Ошибка при запросе SQL в IB Алекс1 БД в Delphi 2 24.06.2007 22:37
Подскажите плиз в чем ошибка в БД D7 при SQL запросе TitAn БД в Delphi 16 07.06.2007 20:18