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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2014, 12:34   #1
Bane
LetTheGameBegin
Пользователь
 
Аватар для Bane
 
Регистрация: 13.03.2014
Сообщений: 34
По умолчанию Ошибка синтаксиса в инструкции UPDATE.

При запуске этой процедуры, происходит ошибка, если значение переменной Kolich <100... что за ошибка? Все ведь правильно? Если значения >=100 то все отлично проходит.
Код:
procedure TForm8.Button1Click(Sender: TObject);
var kolich: string;
    kod: string;
    cena, pzdec: real;
begin
Kolich:=Edit1.Text;
pzdec:=Form7.DBGrid1.DataSource.DataSet.FieldByName('Cena').AsFloat;
Cena:=pzdec*StrToFloat(Kolich)/100;

kod:=Form7.DBGrid1.DataSource.DataSet.FieldByName('Код').AsString;
With Form7.ADOQuery2 do
  begin
  SQL.Clear;
  SQL.Add('UPDATE Sostav SET Kolich='+Kolich+' WHERE Код='+kod+';');
  ExecSQL;

  SQL.Clear;
  SQL.Add('UPDATE Sostav SET Cena='+FloatToStr(Cena)+' WHERE Код='+kod+';');
  ExecSQL;
  end;
end;
Я только учусь)
Bane вне форума Ответить с цитированием
Старый 21.03.2014, 12:36   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Используйте параметры, тогда вопросов не будет.
eval вне форума Ответить с цитированием
Старый 21.03.2014, 13:10   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну и обновлять два поля одной записи вполне можно одним запросом.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.03.2014, 13:48   #4
Bane
LetTheGameBegin
Пользователь
 
Аватар для Bane
 
Регистрация: 13.03.2014
Сообщений: 34
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
Используйте параметры, тогда вопросов не будет.
Что за параметры?
Я только учусь)
Bane вне форума Ответить с цитированием
Старый 21.03.2014, 13:56   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Сначала какой тип у полей Kolich, Cena и Kod?

и с этим не ясно - количество умножили на некую цену , разделили на 100 и получили опять цену?
Код:
Kolich:=Edit1.Text;
pzdec:=Form7.DBGrid1.DataSource.DataSet.FieldByName('Cena').AsFloat;
Cena:=pzdec*StrToFloat(Kolich)/100;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.03.2014, 14:14   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
Что за параметры?
http://docs.embarcadero.com/products...TADOQuery.html
http://docwiki.embarcadero.com/RADSt...ers_in_Queries

Последний раз редактировалось eval; 21.03.2014 в 14:17.
eval вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка синтаксиса в инструкции update pas666 БД в Delphi 8 04.11.2013 21:54
Ошибка синтаксиса в инструкции Update BioNoob БД в Delphi 8 19.06.2012 09:41
Ошибка синтаксиса в инструкции INSERT INTO Crystal2002 C/C++ Базы данных 5 27.04.2012 21:49
Ошибка синтаксиса в инструкции insert into sectorb БД в Delphi 5 24.11.2011 09:23
ошибка синтаксиса в инструкции create table boshki Помощь студентам 6 02.06.2011 18:36