powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Тробла с числом в таблице
5 сообщений из 5, страница 1 из 1
Тробла с числом в таблице
    #32757758
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прислали мне таблицу
Числовые поля N(20,10)
В таблице вижу число 0,52
В дебагере показывает 0.0000000000

С чем это связано???
И как это обойти...
...
Рейтинг: 0 / 0
Тробла с числом в таблице
    #32757811
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подробности подробности ватсон
...
Рейтинг: 0 / 0
Тробла с числом в таблице
    #32757834
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прислали наш архив где есть таблица с числовыми полями
pole1 N(20,10), pole2 N(20,10), pole3 N(20,10)

при просмотре(browse) этой таблицы все числа нормальные...
При любой манипуляции с числом или получении фокуса ячейки обрезается дробная часть...
если число было 0,52 то
при получении фокуса оно становится 0,0000000000
при фокуса потере опять 0,52

Что пользователь мог сделать с таблицей???
...
Рейтинг: 0 / 0
Тробла с числом в таблице
    #32757872
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если пользователь формировал таблицу через ODBC драйвер и в настройках DSN у него стоит "птичка" в пункте

"Use regional settings when outputting currency, numbers, dates, and times"

То ты и получишь описанный эффект.

Проблема здесь в том, что поля типа Numeric в FoxPro физически храняться как символьные данные. Это значит, что в принципе, в такое поле можно записать любой символ. Вот ODBC и записал символ запятой в соответствии с региональной настройкой.

Но при чтении данных для FoxPro символ запятой - это не есть символ, относящийся к числовым данным (символом-разделителем целой и дробной части непосредственно в таблице является точка). Следовательно, будут прочитаны как число только те символы, которые стоят ДО символа запятой. А это 0. Вот ты 0 и видишь в отладчике.

В принципе, можно все исправить ручками (видно же значение, надо просто в BROWSE-окне еще раз его написать), но проще попросить пользователя изменить настройки DSN и заново создать табличку.
...
Рейтинг: 0 / 0
Тробла с числом в таблице
    #32758183
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ВладимирМ!

Всё хорошо и правильно, только зачем же ручки то напрягать :) Всё можно
сделать и программно - способов масса - начиная от чтения файла по FREAD и
записи по FWRITE и заканчивая "массовой" переконвертацией по
FILETOSTR+CHRCONV+STRTOFILE (исключая область заголовка конечно) - последнее
годится когда таких полей много, а "просто текстовых" полей нету, или там не
существенно будет заменена запятая на точку или нет :)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Тробла с числом в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]