Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Это глюк в результатах запроса? / 5 сообщений из 5, страница 1 из 1
09.04.2015, 11:40
    #38931654
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Это глюк в результатах запроса?
Доброе утро!
Пропала буква Д в колонке nskv3.
Собственно обсудите, если есть время.
Спасибо!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT a.nskv, ; 
       PADL(ALLTRIM(a.nskv), 6, '0'), ; 
       TYPE(a.nskv), ; 
       ALLTRIM(a.nskv), ; 
       IIF(TYPE(a.nskv)=='N', PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) as nskv3, ; 
       a.Gid/a.Dni as gid, ; 
       a.Zak/a.Dni as zak ; 
  FROM abdr a ; 
 WHERE a.Dat between dateFrom AND dateTo ; 
       AND ! a.Dni = 0 
...
Рейтинг: 0 / 0
09.04.2015, 12:02
    #38931711
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Это глюк в результатах запроса?
vadipok,

вас нисколько не смущает результат в третьей колонке, в той, где выводится результат TYPE(a.nskv)? Тот самый, который вы сравниваете с 'N' и на результате этого сравнения делаете разные преобразования для получения nskv3. Он сильно похож на 'N'?
...
Рейтинг: 0 / 0
09.04.2015, 12:10
    #38931732
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Это глюк в результатах запроса?
vadipok,

и еще, в дополнение, посмотрите длину поля nskv3. Наверняка она 5. И потому 6 занков в ней не помещаются и последний, 6 знак, обрезается. Если так, то вы наступили на одни из самых распространенных граблей - понадеялись, что фокс сам вычислит наибольший размер данных для этого поля. А он вычисляет этот размер по первому попавшемуся ему значению в этом поле. То есть косяк в том, что выражение IIF(TYPE(a.nskv)=='N', PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) в одно поле пытается поместить данные разного размера. Не надо так так делать, приводите все результаты к одному размеру.
...
Рейтинг: 0 / 0
09.04.2015, 12:53
    #38931806
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Это глюк в результатах запроса?
Sergey Sizovvadipok,

и еще, в дополнение, посмотрите длину поля nskv3. Наверняка она 5. И потому 6 занков в ней не помещаются и последний, 6 знак, обрезается. Если так, то вы наступили на одни из самых распространенных граблей - понадеялись, что фокс сам вычислит наибольший размер данных для этого поля. А он вычисляет этот размер по первому попавшемуся ему значению в этом поле. То есть косяк в том, что выражение IIF(TYPE(a.nskv)=='N', PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) в одно поле пытается поместить данные разного размера. Не надо так так делать, приводите все результаты к одному размеру.

Вот это правдоподобно, спасибо сейчас проверю.
...
Рейтинг: 0 / 0
09.04.2015, 12:56
    #38931811
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Это глюк в результатах запроса?
Sergey Sizov,

Код: sql
1.
IIF(TYPE(a.nskv)=='N', ' ' + PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) as nskv3



Вот так корректно отработало, спасибо еще раз.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Это глюк в результатах запроса? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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