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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 22:06   #1
Ele
 
Регистрация: 19.04.2010
Сообщений: 8
По умолчанию Ошибка при добавлении в базу

Подскажите пожалуйста в чем ошибка??? Выдает ошибку, что пропущена точка с запятой в конце конструкции SQL...запрос в Access работает..

Код:
procedure TForm4.Button1Click(Sender: TObject);
Var
  p1,p2,p3:string;
begin
DataModule2.ADOConnection1.BeginTrans;
try
p1:=Edit1.Text;
p2:=Edit2.Text;
p3:=Edit3.Text;
with DataModule2.ADOQuery1 do
Begin
  Close;
  SQL.Clear;
  SQL.Add('insert into uch (raz,dva,tri) values ('''+p1+''','''+p2+''','''+p3+''')');
  SQL.Add('select *');
  SQL.Add('from uch');
  Open;
End;
DataModule2.ADOConnection1.CommitTrans;
ShowMessage('Äîáàâëåíèå ïðîøëî óñïåøíî!');
Form4.DBGrid1.DataSource:=DataModule2.DataSource1;
except
DataModule2.ADOConnection1.RollbackTrans;
ShowMessage('Ïðîèçîøëà îøèáêà!');
end;
end;

Последний раз редактировалось Stilet; 20.04.2010 в 07:48.
Ele вне форума Ответить с цитированием
Старый 20.04.2010, 07:27   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
procedure TForm4.Button1Click(Sender: TObject);
Var
p1,p2,p3:string;
begin
DataModule2.ADOConnection1.BeginTra ns;
try
p1:=Edit1.Text;
p2:=Edit2.Text;
p3:=Edit3.Text;
with DataModule2.ADOQuery1 do
Begin
Close;
SQL.Clear;
SQL.Add('insert into uch (raz,dva,tri) values ('''+p1+''','''+p2+''','''+p3+''')' );
SQL.Add('select *'); ? //зачем вообще эта строка??
SQL.Add('from uch');  //и эта??
Open;
End;
DataModule2.ADOConnection1.CommitTr ans;
ShowMessage('Äîáàâëåíèå ïðîøëî óñïåøíî!');
Form4.DBGrid1.DataSource:=DataModul e2.DataSource1;
except
DataModule2.ADOConnection1.Rollback Trans;
ShowMessage('Ïðîèçîøëà îøèáêà!');
end;
end;
Используйте параметры в запросах
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.04.2010, 07:52   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что пропущена точка с запятой в конце конструкции
Логично. Ты в один пакет поместил запрос получающий данные и запрос редактирующий базу, их нужно разделить (это как минимум)
Код:
...'''+p3+''');...
Но я бы не рекомендовал так делать. Лучше поотдельности:
Код:
  
  SQL.Text:='insert into uch (raz,dva,tri) values ('+QuotedStr(p1)+','+QuotedStr(p2)+','+QuotedStr(p3)+')';
  if execsql<>0 then begin
   SQL.Text:='select * from uch';
   Open;
  end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 12:53   #4
Ele
 
Регистрация: 19.04.2010
Сообщений: 8
По умолчанию

Спасибо, Stilet! Сделала как Вы посоветовали, все получилось!
Ele вне форума Ответить с цитированием
Старый 20.04.2010, 13:22   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
все получилось!
Ну и славненько
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при добавлении запроса KARUSHEV Помощь студентам 3 27.01.2010 08:45
Ошибка при добавлении дополнительных полей на DLE 8.2 denis35 WordPress и другие CMS 13 15.11.2009 15:04
Ошибка при внесении данных в базу cherry25 БД в Delphi 3 17.06.2009 14:28
Проверка при добавлении записи Tanya2008 БД в Delphi 3 22.04.2009 10:07
Проблема при добавлении в БД Oleg Romanchuk БД в Delphi 2 12.01.2009 12:21