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

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

insert поля BCD [D7, dBase, FoxPro]


Цукор5 ©   (2007-05-16 16:14:00) 

Есть таблица(dBase3). В ней,например, поле типа ftBCD.Ну т.е. так создавал:

with hTable.FieldDefs.AddFieldDef do
   begin
     Name:='ACC_PRICE';
     DataType:=ftBCD;
     Precision:=14;
     Size:=2;
   end;


Так вот...пытаюсь заполнить таблицу.

Вот так, работает :

Format('insert into ARTICLE.DBF(CODE,NAME,ACC_PRICE) values (%d, %s, 5)',  [1,'"132"'])


а вот так уже нет:

Format('insert into ARTICLE.DBF(CODE,NAME,ACC_PRICE) values(%d, %s, %f)', [1,'"132"', 5])


Что я делаю не так ?
Пробовал и %14.2f  и %m . Ничего не помогает :(
Заранее спасибо


Цукор5   (2007-05-17 12:47:00) [1]

Спасибо...таки помогло ;)

Вот только я не понял юмора :

Query1.ParamByName('Acc').AsCurrency:=15.5; // работает
Query1.ParamByName('Acc').AsBCD:=15.5; // а так нет


Desdechado   (2007-05-17 11:16:00) [2]

> не получается и с параметрами.
Не вижу => не верю.


Anatoly Podgoretsky   (2007-05-17 00:13:00) [3]

> Цукор5  (16.05.2007 23:22:11)  [11]

С параметрами получает, а вот без них постоянные грабли


Цукор5   (2007-05-16 23:22:00) [4]

Спасибо конечно, но не получается и с параметрами. Буду разбираться дальше...

>Выведи с помощью ShowMessage результат работы функции FORMAT и поймешь глубину своего падения.

Кстати, не понял эту глубину. Вроде все как и должно быть.


Anatoly Podgoretsky   (2007-05-16 21:02:00) [5]

> Цукор5  (16.05.2007 20:18:08)  [8]

Используй параметры, а то ты муру передаешь в запрос.
Выведи с помощью ShowMessage результат работы функции FORMAT и поймешь глубину своего падения.

Параметры
Параметры
Параметры


Desdechado   (2007-05-16 20:23:00) [6]

> в чем причина неудачи ?
%f как известно, для чисел с плавающей точкой. Или запятой. Или еще каким-то разделителем. И его не понимает парсер. Потому параметры.

И не будь упертым.


Desdechado   (2007-05-16 20:18:00) [7]

> а какая разница между запросом с параметрами  от такого же,но без параметров ???
Их много, этих разниц.
В данном случае важна та, что параметрический не зависит от текстово формата представления любых данных.


Цукор5   (2007-05-16 20:18:00) [8]

2 Anatoly Podgoretsky ©   (16.05.07 20:12) [6]

А разве Вы не смотрели [0] ?

Повторюсь :

Вот так, работает :

Format('insert into ARTICLE.DBF(CODE,NAME,ACC_PRICE) values (%d, %s, 5)',  [1,'"132"'])


а вот так уже нет:

Format('insert into ARTICLE.DBF(CODE,NAME,ACC_PRICE) values(%d, %s, %f)', [1,'"132"',5])


в чем причина неудачи ?


Anatoly Podgoretsky   (2007-05-16 20:12:00) [9]

> Цукор5  (16.05.2007 20:09:05)  [5]

А что не работает, нам погадать?


Цукор5   (2007-05-16 20:09:00) [10]

2 Anatoly Podgoretsky ©   (16.05.07 19:27) [4]

Его здесь нет. Но что изменят эти параметры ???
ИМХО и в [0] должно все работать.


Anatoly Podgoretsky   (2007-05-16 19:27:00) [11]

А где здесь запрос с параметрами?


Цукор5   (2007-05-16 19:24:00) [12]

2 Desdechado ©   (16.05.07 17:29) [1]

а какая разница между запросом с параметрами  от такого же,но без параметров ???

>откуда в dbase3 BCD-поля?

Хм...не знаю. Не я ж их придумал ;) Есть и точка.


Anatoly Podgoretsky   (2007-05-16 19:22:00) [13]

> Desdechado  (16.05.2007 17:29:01)  [1]

Вообще то изначально, с db2
А вот флоат появилось позже


Desdechado   (2007-05-16 17:29:00) [14]

Параметры использовать.

ЗЫ откуда в dbase3 BCD-поля?


Наверх

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