Показать сообщение отдельно
  #1  
Старый 21.04.2013, 20:55
Аватар для alexusankov
alexusankov alexusankov вне форума
Новичок
 
Регистрация: 27.08.2012
Сообщения: 78
Версия Delphi: C++/Delphi 2010
Репутация: 10
По умолчанию SQL -> Странная ошибка

Здравствуйте. Пытаюсь перезаписать в таблице значения, вылетает ошибка : Ошибка при преобразовании типа данных varchar к float.
Запрос выглядит так :
Код:
String Query = "UPDATE dbo.TIDC SET IDC_Now_TO = '" + FloatToStr(SimpleRoundTo(New_Now_TO)) + "' WHERE IDC_Name = '" + Clocks->Strings[0] + "'";
Q->SQL->Text = Query;
При этом в БД IDC_Now_TO тип float, и у New_Now_TO так же, тип float.
В чем прикол??
P.s. записываемое число : 9090,43
P.s.s извините не заметил что это "Начинающим по Delphi" - хотя TADO что там, что тут одинаковы.
*********************
P.s.s.s Извиняюсь - разобрался. Проблема в том, что дибильный MSSQL не может присвоить ячейке float значение 555,56 т.к. ему нужно чтобы была не запятая - а точка. Воткнул костыль, заработало. Если кому нужно :
Код:
String Qs = FloatToStr(SimpleRoundTo(New_Now_TO)) ; // оставляем 2 знака после запятой
int Delit = Qs.Pos(",");                                                        
Qs = Qs.Delete(Delit,1);
Qs = Qs.Insert(".",Delit);                                                     // Втыкаем вместо ","  = "."
String Query = "UPDATE dbo.TIDC SET IDC_Now_TO = '" + Qs + "' WHERE IDC_Name = '" + Clocks->Strings[0] + "'";