Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Лишняя запятая в запросе [D7, DBISAM]


DimDim ©   (2007-09-16 11:47:00) 

Уважаемые Мастера! Абсолютно тупая проблема, но что-то заклинило.
В Query пишу запрос вида:
with DM1.QueryAll do
 begin
 SQL.Clear;
 SQL.Add('UPDATE Table1 SET PoleX = '+Table2.FieldByName('Num').AsString);
или  
 SQL.Add('UPDATE Table1 SET PoleX = '+FloatToStr(Table2.FieldByName('Num').AsFloat));
 ...
 ExecSQL;
 end;

Поле Num имеел числовые значения типа 123,456. Запятая в числе воспринимается запросом как управляющий символ. Как от этого избавиться?


Anatoly Podgoretsky   (2007-09-16 13:42:00) [1]

> DimDim  (16.09.2007 13:40:09)  [9]

Ура, хоть одно предложение насчет параметро прошло без скандала.


DimDim   (2007-09-16 13:40:00) [2]

Спасибо всем. С параметром все работает. Сам тормазнул на счет параметров...


Anatoly Podgoretsky   (2007-09-16 13:37:00) [3]

> sniknik  (16.09.2007 13:24:07)  [7]

Которая точно также зависима от региональных настроек.
И опять за что боролись, на то и напоролись.
Возможно повезет, возможно нет.


sniknik   (2007-09-16 13:24:00) [4]

> Это что то меняет
со строки в самом DBISAM возможно есть автоприведение типа (как в аксесс например).


homm   (2007-09-16 12:47:00) [5]

> [5] Anatoly Podgoretsky ©   (16.09.07 12:45)
> Это что то меняет.

Вот-вот.


> [4] Johnmen ©   (16.09.07 12:43)
> > Поле Num имеел числовые значения
И?


Anatoly Podgoretsky   (2007-09-16 12:45:00) [6]

> homm  (16.09.2007 12:36:03)  [3]

Это что то меняет


Johnmen   (2007-09-16 12:43:00) [7]


> homm ©   (16.09.07 12:36) [3]
> Значение полей нужно квотровать


> Поле Num имеел числовые значения


homm   (2007-09-16 12:36:00) [8]

Значение полей нужно квотровать
SQL.Add('UPDATE Table1 SET PoleX = '''+Table2.FieldByName('Num').AsString+'''');


sniknik   (2007-09-16 12:28:00) [9]

все делать через параметры. можно конечно просто разделитель на точку поменять но это временно, после у тебя возникнут проблемы с датами и строками... а параметры универсальны.


Плохиш   (2007-09-16 12:26:00) [10]

Используй параметры или, для мазохистов, заменяй запятую на точку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо