Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка данных из *.mdb файла, ухудшается точность 
V
    Опции темы
Mpak
Дата 25.3.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



В общем делаю следующее (для справки):
ADOConnection подключает базу данных MS.mdb
Код

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=MS.mdb;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System
database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking
Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create
System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without
Replica Repair=False;Jet OLEDB:SFP=False


ADODataSet отправляет CommandText = Table при CommandType = cmdTableDirect
ADODataSet->Connection = ADOConnection
DataSource->DataSet = ADODataSet
DBGrid->DataSource = DataSource

Все работает замечательно, но при заполнение БД по средством MS Access (пример) ввел 280.2, а
при загрузке в DBGrid отображается 280,200012207031

Как избавиться от этого? Для моего прокета это излишнияя погрешность...

Это сообщение отредактировал(а) Mpak - 25.3.2008, 15:17


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
Rodman
Дата 25.3.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Какой тип поля?
как добавляешь? и как выводишь?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
korian
Дата 25.3.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Цитата(Mpak @  25.3.2008,  14:15 Найти цитируемый пост)
при загрузке в DBGrid отображается 280,200012207031

ну это ж нормально  smile 
а вообще точность устанавливается в настройках DBGrid.
вроде можно устанавливать default (для все полей) и для каждого поля в отдельности.
щас вспомню...
PM   Вверх
Mpak
Дата 25.3.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



Тип поля числовой, DBGrid заполняется при выполнение команды
Код

ADODataSet->Open();




--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
korian
Дата 25.3.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



ага, соврал я =)
такие настройки есть у DataSet для конкретного field'a, а точнее для floatfield или типа того.
короче в dataset-e добавляем все поля и настраиваем соответствующее поле. DataSet должен понимать, что поле - float (вообщем это автоматом происходить должно), тогда в его настройках будет возможность указать точность.

Добавлено @ 15:40
параметр называется Precision: - это у TFloatField
Цитата

Use Precision to set the number of digits beyond the decimal point that the value should be formatted to before rounding begins. Precision affects the format of the floating-point value when it is displayed as a text string, not the actual floating-point value that is stored in the field.
The default value of Precision is 15 decimal places.

или можно использовать
TNumericField::DisplayFormat установив равным #.## например


Это сообщение отредактировал(а) korian - 25.3.2008, 15:43
PM   Вверх
Mpak
Дата 25.3.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



Выставляю конкретному полю значение Precision равное 3 (например)
ему все равно..


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
korian
Дата 25.3.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



странно...
а если DisplayFormat установить в 0.##
я это так делал когда-то... может быть потому, что Precision у меня тоже не сработал.

PM   Вверх
Mpak
Дата 26.3.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



А расскажите, пожалуйста, поподробнее про DisplayFormat.
А лучше приведите пример smile 


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
korian
Дата 26.3.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



TFloatField является наследником TNumericField, и наследует он от него DisplayFormat. (короче это такая же настройка как и Precision, настраивается в Object Inspector)
в хелпе по былдеру есть описание, кратко:
Код

DisplayFormat    Value    Result    Comment

#.##         12.2    12.2    Note extra digit to left of decimal still appears
#.00         2.5    2.50    Note extra zero: field will always show two decimal places
00.##        .006    00.01    Note extra zeros to right of decimal point and rounding to two decimal places.

PM   Вверх
Mpak
Дата 27.3.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



Чего-то не могу понять как его использовать.. не могли бы вы привести конкретный пример, пожалуйста...


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
korian
Дата 27.3.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



а я не понимаю, чего не понятно  smile 
рисунок прилогается...

Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  1.JPG 46,63 Kb
PM   Вверх
Mpak
Дата 27.3.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



Протупил))) Сори )) Все ок, все работает smile


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1257 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.