Float и MySql

demamon

В таблице есть значение float. Вставка работает нормально.
begin
try
  Application.CreateForm(TCurrenciesEdit, CurrenciesEdit);
  if CurrenciesEdit.ShowModal = mrok then
    begin
      DM.sqlcom.CommandText:= 'INSERT INTO Currencies (name_currency, course) VALUES (' +
                                quotedStr(Currenciesedit.edit1.text) + ','
                                + quotedStr(Currenciesedit.edit2.Text) + ')' ;
      DM.SQLCom.Execute;
      DM.QuCurrencies.Close;
      DM.QuCurrencies.Open;
 
    end;
finally
CurrenciesEdit.Free;
 
end;
end;
А при изменении ругается на синтаксис.
try
    Application.CreateForm(TCurrenciesEdit  , CurrenciesEdit);
 
    with CurrenciesEdit do
    begin
      Edit1.Text:= DM.QuCurrencies.FieldByName('name_currency').AsString;
      Edit2.Text:= DM.QuCurrencies.FieldByName('course').AsString;
      IDZ := DM.QuCurrencies.FieldByName('id_currency').AsString;
    end;
 
    if CurrenciesEdit.ShowModal = mrOk then
      begin
        DM.SQLCom.CommandText := 'UPDATE currencies SET '+
                                 ' name_currency = '+ QuotedStr(CurrenciesEdit.edit1.text) +
                                 ' course = '+ QuotedStr(CurrenciesEdit.edit2.text) +
                                 ' WHERE id_currency = '+ IDZ;
        DM.SQLCom.Execute;
 
        DM.QuCurrencies.Close;
        DM.QuCurrencies.Open;
      end;
  finally
    CurrenciesEdit.Free;
  end;
   end;
Я так понимаю дело в разделительном знаке. Но если в добавлении достаточно точку ставить и все работает, то в изменении это не помогает.
4 ответа

demamon

Я так понимаю дело в разделительном знаке
А где разделители между полями в SET ?


demamon

Еще вопрос появился. Пишем в edit число типа 23.44 и передаем его в базу. В базе добавляются цыфры после запятой и число получается больше. Если в базе ограничить поле 2 знаками после запятой то будет выскакивать ошибка о выходе значения за границы. Не понимаю в какой момент числу цифры прибавляет и что с этим делать?


demamon

Не понимаю в какой момент числу цифры прибавляет и что с этим делать?
Когда ты формируешь запрос динамически, не всегда понятно, что в итоге получилось. Поэтому привыкни выводить текст запроса на экран до посылки на сервер (естественно, только в процессе отладки). Иногда вопросы разрешаются чисто при взгляде на текст запроса.