powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отсечения нуля в целой части при возврате курсора с MSSQL
9 сообщений из 9, страница 1 из 1
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33079845
Фотография Трусняки Программизда02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи, с сервера возвращается курсор с числовым полем типа Decimal (18,2). У чисел, имеющих в целой части 0, не отображается этот самый 0. Т.е. вот так это выглядит

F1
100.23
86.43
.23 1.23
.00

Что делать ?
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33079850
Фотография Трусняки Программизда02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F1
100.23
86.43
.23
1.23
.00
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33079990
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трусняки Программизда02Товарищи, с сервера возвращается курсор с числовым полем типа Decimal (18,2). У чисел, имеющих в целой части 0, не отображается этот самый 0. Т.е. вот так это выглядит

F1
100.23
86.43
.23 1.23
.00

Что делать ?
А в чем проблема? Для чего Вам этот ноль?
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33080013
Фотография Трусняки Программизда02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch Трусняки Программизда02Товарищи, с сервера возвращается курсор с числовым полем типа Decimal (18,2). У чисел, имеющих в целой части 0, не отображается этот самый 0. Т.е. вот так это выглядит

F1
100.23
86.43
.23 1.23
.00

Что делать ?
А в чем проблема? Для чего Вам этот ноль?

Проблема в том, что в гриде также отображается с отсеченным нулем. Дело конечно можно поправить с помощью InputMask = '9999999999.99' на колонку. Но не хотелось бы. Самое интересное, что если создать курсор в фоксе, типа
create cursor test (f1 n(18,2)) и вставить туда 0, то в курсоре появится 0.00. А почему-то при заполнении курсора значениями с сервера, ноль в целой части отсекается. И еще, если в QA посмотреть содержимое таблиц, то там также ноль в целой части отсекается у подобных значений с.
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33080140
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как отображаются числа, с количеством знаков в целой части больше 3?

12345.78

Если они отображаются в виде

12 345.78

А когда ставишь на них фокус, то в виде

12

то у Вас проблемы с настройками DSN. Там надо убрать птичку с пукта

"Use regional settings when outputting currency, numbers, dates, and times"
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33080168
Фотография Трусняки Программизда02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМКак отображаются числа, с количеством знаков в целой части больше 3?

12345.78

Если они отображаются в виде

12 345.78

А когда ставишь на них фокус, то в виде

12

то у Вас проблемы с настройками DSN. Там надо убрать птичку с пукта

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

Числа с количеством знаков в целой части больше 3 отображаются нормально. Проблема только с нулем в целой части. Коннекчусь к серверу через SQLSTRINGCONNECT.
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33080220
Фотография Трусняки Программизда02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще одно интересное наблюдение. Если выполнить вот эту команду над полем курсора UPDATE F1 SET F1 = CAST(F1 AS n(18,2)), то 0 в целой части появляется. Такое впечатление, что тип decimal сервера не совсем совместим с типом numeric фокса.
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33081085
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ....

Это известная проблема, возникает регулярно и с разными типами серверов - дело в том, что BROWSE показывает данные так, как они физически храняться в курсоре - а в курсоре храниться то, что получено через ODBC - т.е. в твоём случае комбинация настроек сервера, ODBC драйвера и возможно ОС вызвала то, что физически данные пришли без ведущего нуля. Это ещё ничего - иногда они приходят с пробелами внутри (о чём говорил Владимир) или с запятой вместо десятичной точки - тогда вообще всё страшно глючит :(
Лечиться это всё обычно настройкой ODBC драйвера (в т.ч. сменой его на другой), самого сервера (возможно просто настройки уровня сессии стоит подкрутить).
Если у тебя используется RV а не прямой запрос, то можно явно указать использование типа данных Double - его физическая форма не предполагает хранения числа в виде "строки" (как это происходит для типа Numeric) а значит проблемы не будет.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Отсечения нуля в целой части при возврате курсора с MSSQL
    #33081186
Фотография Трусняки Программизда02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
Если у тебя используется RV а не прямой запрос, то можно явно указать использование типа данных Double - его физическая форма не предполагает хранения числа в виде "строки" (как это происходит для типа Numeric) а значит проблемы не будет.

Posted via ActualForum NNTP Server 1.2

Использую ХП, по сути прямой селект. Пока варианта решения проблемы у меня два:

1) Посадить на числовую колонку InputMask = "9999999999.99"
2) Перед привязкой курсора к гриду, сделать по "проблемным" колонкам апдейт, вида UPDATE F1 = CAST(F1 AS n(18,2)),F2 = CAST(F1 AS n(18,2)),...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отсечения нуля в целой части при возврате курсора с MSSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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