Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Вниз

Числа с запятой в Insert и Update 


Jony   (2002-01-22 09:36) [0]

Неожиданно столкнулся с проблемой: не могу через запрос типа Insert или Update обновить таблицу в БД, если в качестве обновляемых значений есть число с запятой. Причем, неважно, или это через TQuery (динамический) c непосредственной подстановкой переменных, или через TUpdateSQL - через параметры (в том числе и с двойными кавычками) - перечисление значений идет через запятые и запятая в числе воспринимается как запятая между значениями. Естественно, возникает ошибка ("Type mismatch in expression"). Облазил литературу, форумы, FAQи - бесполезно. Как быть?



Фэ   (2002-01-22 10:09) [1]

Заменить в локализации Win разделитель целой с "," на ".";
Если не хочется - то делай пробелы
"ID , PARENT ," и т.д.



Jony   (2002-01-22 10:18) [2]

Разделитель менял в процессе поисков - безрезультатно. А пробелы не помогают, да и как они могут помочь?



Фэ   (2002-01-22 11:02) [3]

Дело в том, что после подстановки значений возникает текст
3, 5, "Hello"
и парсером SQL могут такие ситуации неверно обрабатываться.
У меня с не с Paradox была похожая ситуация.

sS.Add("UPDATE "+QuotedStr(tbName));
sS.Add("SET ");
for i:=0 to sF.Count-1 do begin // разбор параметров
if (i = sF.Count-1) then se := sNULL
else se := " , ";
sS.Add(sF[i]+"="+sV[i]+se);
end;



Desdechado   (2002-01-22 11:04) [4]

попробуй через параметры
qry.SQL.Text := "INSERT INTO ttt (floatfield, str) VALUES ( :P0, :P1 )";
qry.Params[0].AsFloat := ...
qry.Params[1].AsString := ...
qry.ExecSQL;




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.042 c
6-42818           Sir Alex              2001-11-23 20:09  2002.02.14  
IE & Asynchronous Pluggable Protocols


14-42836          RhinoFC               2001-12-25 07:04  2002.02.14  
У вас есть файл proxies.pas?


3-42690           wicked                2002-01-22 12:03  2002.02.14  
ADO 2.6 и 2.7


3-42704           IVL                   2002-01-22 23:43  2002.02.14  
Компоненты Interbase


14-42844          Oleg Gashev           2001-12-24 22:43  2002.02.14  
С Новым Годом!!!