загвоздка в Вычисляемом поле с денежным форматом
БД Ацесс, доступ через АДО
Наткнулся на проблемку.
У меня есть вычисляемое поле:
{
ADOQueryAddSumma->Value=ADOQueryAddWeight->Value*ADOQueryAddPrice->Value;
}
ADOQueryAddWeight - тип данных числовое с плавающей точкой, колличество знаков после запятой - 3
ADOQueryAddPrice - тип данных числовое с плавающей точкой, колличество знаков после запятой - 2
все было нормуль, пока мне не попался такой вес в поле ADOQueryAddWeight:
0,001 - при умножении на цену (допустим 3 ) я получаю - 0,00
на калькуляторе - 0,003
Естественно это мне не подходит, обследовав свойства вычисляемой колонки, не нашел что либо в чем можно было указать разрядность, подскажи что в моем случае сделать, и еще в этой вычисляемой колонке автоматом выставляется р. то есть прога думает что это денежный формат, р. мне там и даром не нужно((
я не указывал никакого типа, просто добавил в грид колонку, в свойствах колонки нет типов (в инспекторе)
подсказали что надо юзать DisplayFormat
только не знаю его синтаксис и в каком месте устанавливать
подсказали что надо юзать DisplayFormat
только не знаю его синтаксис и в каком месте устанавливать
Каждое поле таблицы базы данных имеет свой тип. Он задается не на уровне приложения, а на уровне БД. Таким образом если у поля, за которое отвечает ADOQueryAddSumma, тип "денежный", то получаем во-первых эту букву "р.", а во-вторых происходит округление результата выражения ADOQueryAddWeight->Value*ADOQueryAddPrice->Value до копеек. Т.е. до двух знаков после запятой: 0,003 -> 0,00
те есть какие я исходные форматы колонок лдя вычисления использую, в таком формате я и получу результат, я правильно понял? Но поле цена и вес у меня не денежное, а числовое ((
Нет. В каком формате поле результата (ADOQueryAddSumma), к тому и будет преобразование. Или ADOQueryAddSumma ни с каким полем в таблице базы данных не связанно?
нет конечно - не связано, это же вычисляемое поле... оно создается динамически как результат умножения двух вышеупомянутых колонок