Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera) / 6 сообщений из 6, страница 1 из 1
14.08.2009, 18:52
    #36145358
vl2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera)
Здраствуйте, товарисчи!
Есть запрос (SELECT, достаточно большой по размерам и сложности), отлажен в PL/SQLDevelopere и возвращает проверенные результаты.
Из клиента, написанного на VFP9 посылаю тот же текст запроса на сервер Оракл9.
Запрос выполняется успешно, данные возвращаются на клиента.
Но!!! в некоторых столбцах (числовых) вместо значений стоят 0 (нули).
Работаю через ОДБС (пробовал Микрософтовский, и Оракловский - результат одинаковый).
Какие есть предположения по данной засаде?
...
Рейтинг: 0 / 0
14.08.2009, 19:18
    #36145402
Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera)
vl2009Но!!! в некоторых столбцах (числовых) вместо значений стоят 0 (нули).А что должно быть? Числа меньше нуля? А разделителем дробной части части что стоИт? Не запятая случаем?
...
Рейтинг: 0 / 0
14.08.2009, 19:29
    #36145421
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera)
Возможно, несуществующий для FoxPro числовой тип данных. Точнее, этого типа нет в таблице перекодировки типов данных соответсвующего драйвера ODBC. Сделай явное преобразование этих числовых полей в какой-либо стандартный тип данных. Из тех полей, которые возвращают значение.

Да, и если речь идет о числах меньше 1, то вполне возможно проблема в региональных настройках. Вместо точки в качестве разделителя целой и дробной части используется запятая. Посмотри, нет ли в настройках драйвера ODBC чего-то вроде "Региональные настройки".
...
Рейтинг: 0 / 0
14.08.2009, 22:36
    #36145559
1270.0.1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera)
vl2009,

1. использовать Oracle ODBC
2. после подключения, изменить настройку сессии:
Код: plaintext
SQLExec(m.nConnect,[ALTER SESSION SET NLS_NUMERIC_CHARACTERS='. '])
...
Рейтинг: 0 / 0
15.08.2009, 11:55
    #36145763
vl2009
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera)
Всем огромное спасибо за советы.
К сожалению, проверить смогу только в понедельник, на работе. Щас дам некоторые пояснения.

1. Сам текст запроса составлен разработчиком серверной части. Запрос мудренный, дословно привести его не смогу, тока в общих чертах:
Код: plaintext
1.
2.
3.
4.
5.
6.
select a.sld_nm,b.deb,c.cre, dog.dog_id from dog,
(select dog_id, pckg_getsldnm(dog_id, ?period) sld_nm from dog) a,
(select dog_id, pckg_getdeb(dog_id, ?period) deb from dog) b,
(select dog_id, pckg_getcre(dog_id, ?period) cre from dog) c
where a.dog_id = dog.dog_id
and b.dog_id = dog.dog_id
and c.dog_id = dog.dog_id
ещё раз повторю, что это очень упрощенный вариант.
2. в столбце a.sld_nm возвращаются нормальные числа (например: 45872.65), а в b.deb стоят одни нули (0, хотя в PL/SQL Developere возвращаются ненулевые числа).
3. Изменяю строку
Код: plaintext
(select dog_id, pckg_getdeb(dog_id, ?period) deb from dog) b,
на
Код: plaintext
(select dog_id,  458725548954 . 5468798798756  deb from dog) b,
в FOXе видно это число.
4. При смене ОДБС драйвера с Микрософтовского на Оракловский 0 меняется на 0.00000
...
Рейтинг: 0 / 0
15.08.2009, 20:00
    #36145963
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera)
vl2009,
ВладимирМСделай явное преобразование этих числовых полей в какой-либо стандартный тип данных. Из тех полей, которые возвращают значение.
Код: plaintext
(select dog_id, cast(pckg_getdeb(dog_id, ?period) as Decimal( 20 , 5 )) deb from dog) b,
ЗЫ. С Прорицателем не знаком, как там каст пишется и какие типы есть - не в курсе, но идея должна быть ясна.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Несовпадение результатов SELECTa (из VFP9 и PL/SQLDevelopera) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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