ODBC драйвер подержки VarChar | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Я что-то не пойму, при работе через ODBC поддержка VarChar не происходит?
Т.е. на MS SQL 2000 создал поле типа VarChar, а у клиента то же самое поле уже имеет тип Character. Это проблема драйвера? ------------------ |
Re: ODBC драйвер подержки VarChar | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
А где же
------------------ WBR, Igor |
Re: ODBC драйвер подержки VarChar | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Ну... просто нет слов... (кроме матерных). Если по умолчанию сделана настройка SET VARCHARMAPPING ON, то почему настройка курсоров ей противоречит? Должно быть что-то одно! Ладно, спишем это недоразумение на то, что это beta-версия.
Еще один вопрос уже собственно не связанный с VFP9, но также по ODBC Если я использую для связи с MS SQL настроенный DSN и выставляю в нем птичку в пункте "Use regional settings when outputting currency, numbers, dates, and times" (обычно я этого не делаю, просто экспериментировал) То получается странная вещь. При чтении числовых данных в поля типа Numeric записывается физически (смотрел в FAR) что-то вроде
В результате, при просмотре через Browse-окно эти данные отображаются как символьные строки в числовом представлении. Но при чтении/записи таких данных в качестве числа берется естесственно только цифры до первого символа отличного от цифры или точки. Т.е. в данном случае это будет число 12. Самое забавное, что такой глюк наблюдается и в Access (смотреть можно, писать нельзя!). Это глюк драйвера ODBC для MS SQL или здесь какие-то другие причины? ------------------ |
Re: ODBC драйвер подержки VarChar | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Я не думаю что тут хоть как-то виноват фокс. Примерно такие-же "глюки" есть
и в Oracle - скажем MS-овский драйвер неправильно определяет тип для вычисляемых полей запроса - вместо Double или иного с плавающей точкой даёт Numeric да ещё и с кривой размерностью (я даже не знаю как лечить, ибо юзаю). А вот Oracle-вский драйвер наподобии твоего себя ведёт - в дробных Numeric-ах вместо десятичной точки ставит запятую - и потом в Browse всё выглядит прилично!(кстати это недекларированная особенность - не "вычислять/проверять" такие поля, а просто показывать "как есть") а при попытке обращения естественно дробная часть теряется. Лечится такое поведение путём вправления мозгов самому серверу (раз уж этот ODBC драйвер не занимается никакой конвертацией типов) - ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '. ' - заметь, что второй символ это как раз разделитель тысячных разрядов, возможно что если его выставить в какую-нить кавычку или букву то получим в точности твою проблему... В общем надо настраивать сервер и ODBC - это проще нежели делать всякие "обходные манёвры". Кстати если мне не изменяет склероз с MS SQL имелась и иная проблема - фокс достаёт image поля как General, тогда как они по сути Memo(binary) и если в RV/CA можно настроить маппинг, то в SPT нельзя и придётся извращаться чтобы таки достать данные из такого поля... Но тут лучше спросить у тех кто более плотно с MS SQL работает - я лишь только только начал смотреть на эту СУБД. ------------------ WBR, Igor |
© 2000-2024 Fox Club  |