Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2009, 12:07   #1
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию Редактирование DBF

Есть поле в DBF Integer

Вопрос как в свойствах ячейки, а лучше сразу столбца, сделать чтобы было 2 знака после запятой
Пример в идёт значение
0,00
а он умный ставит 0
поле обязательно должно быть числовым.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 21.10.2009, 12:14   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

а если 1.27 ввести что ставит?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 21.10.2009, 12:19   #3
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Integer по определению не имеет точности - это ЦЕЛОЧИСЛЕННОЕ
для своих целей юзайте number, numeric или какой там тип ему соответствует с заданной точностью, например, (15, 2)
soleil@mmc вне форума Ответить с цитированием
Старый 21.10.2009, 12:54   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Integer по определению не имеет точности - это ЦЕЛОЧИСЛЕННОЕ
а вот тут сказывается отстутствие опыта работы со старым, добрым DBF

DBF - они разные бывают.
Так вот, если речь идёт о "классическом DBF" (это Dbase III, DBase IV), то для числовых полей там есть тип данных Numeric. указывается число знаков всего и, после запятой, число дробных разрядов. Этот тип и для целочисленных значений (если число дробных разрядов равно нулю.)

BARNEY, конкретики маловато...
а в чём собственно вопрос? Чем Вы редактируете DBF? и тип DBF какой (1-й байт файлика посмотрите, чему он равен, в Hex)?
Или вопрос в том, чем можно изменить структуру? если нет подходящего иструмента - можно, на крайний случай, создать новый DBF с требуемой структурой и потом перелить данные из старого в новый...
Пишите, что конкретно надо — надеюсь, поможем..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.10.2009, 13:39   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а вот тут сказывается отстутствие опыта работы со старым, добрым DBF

DBF - они разные бывают.
Так вот, если речь идёт о "классическом DBF" (это Dbase III, DBase IV), то для числовых полей там есть тип данных Numeric. указывается число знаков всего и, после запятой, число дробных разрядов. Этот тип и для целочисленных значений (если число дробных разрядов равно нулю.)
я как бы исходное задание читал
Цитата:
Сообщение от BARNEY Посмотреть сообщение
Есть поле в DBF Integer
отсюда и выводы
и я в курсе, что numeric можно привести к integer по типу numeric(10, 0)
soleil@mmc вне форума Ответить с цитированием
Старый 21.10.2009, 15:17   #6
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

и так по порядку...есть база firebird там поле numeric 11,2

Есть злополучный DBF у которого поле Integer
Если я вставляю значение в это поле типо 1,28
Он вставляет НО как текст... А приколы типо сумма значений столбца , авто суммы и т.п. вещи не пашут.
Если начать редактировать столбец то он (т.к. поле int ) округляет до целых.... т.е. из 1,28 = 1
Можно выбрать столбец - формат ячеек- ставим число десятичных знаков 2... и всё встаёт как надо...

Вот это надо сделать программно. т.е. поле int поменять на numeric(11, 2)

p.s. создаю dbf так http://programmersforum.ru/showthread.php?t=66212
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)

Последний раз редактировалось BARNEY; 21.10.2009 в 15:19.
BARNEY вне форума Ответить с цитированием
Старый 21.10.2009, 15:32   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а может стОит изначально создать базу с нормальными полями?!

обычно дбф-ки после ФБ юзают исключительно для экспорта в какую-нить "древнюю систему" или переноса (имхо для конкретно переноса в тот же ФБ лучше использовать точно такие же файлы ФБ, только с ограниченным набором таблиц/полей/данных, которые переносятся)

попробуй так
Код:
alter table [your_table] modify [your_field] numeric(11, 2)
soleil@mmc вне форума Ответить с цитированием
Старый 21.10.2009, 15:43   #8
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

ADO не понимает numeric(11, 2)

через BDE у мну не очень получается..да и ставить его на каждый комп не очень радужная перспектива... Формат прописан в местном законе/акте/нормативном документе.. хоть как обзовите..в общем никак не поменять...

Не совсем понял это, в каком месте это писать, в запросе?
Код:
alter table [your_table] modify [your_field] numeric(11, 2)
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)

Последний раз редактировалось BARNEY; 21.10.2009 в 15:46.
BARNEY вне форума Ответить с цитированием
Старый 21.10.2009, 15:56   #9
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
Формат прописан в местном законе/акте/нормативном документе.. хоть как обзовите..в общем никак не поменять...
как это согласуется с самим фактом изменения структуры дбф?
вместо numeric пиши number
soleil@mmc вне форума Ответить с цитированием
Старый 21.10.2009, 16:01   #10
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

а в структуре и есть number (11,2)
через ADO просто создать не получилось... (11,2) ... По этому и хочу поменять столбец...
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование Valera24 Помощь студентам 9 11.06.2009 19:41
редактирование ячейки SveSve Microsoft Office Excel 2 11.04.2008 10:16
Редактирование AntiZero Помощь студентам 2 12.11.2007 18:02
сохранение результата выборки из DBF файла в DBF файл с такой же структурой таблицы GazimagomedovM БД в Delphi 5 06.11.2007 17:58
редактирование формы РИЯ Помощь студентам 4 31.10.2007 10:53