Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Вниз

Select, Dbase, BDE, кодировка...   Найти похожие ветки 

 
Эдик   (2004-06-22 15:50) [0]

Всем привет!
Есть таблица DBASE IV, созданная в фоксе, кодовая страница 866, необходимо сделать выборку... Проблема в том, что по умолчанию для файлов *.dbf исспользуеться драйвер DBASE, а он некоректно воспринимает фоксовскую кодовую страницу... Открываю таблицу компонентом TTable и исспользую TableType=ttfoxpro, данные отображаються корректно, но как TQuery заставить исспользовать драйвер FOXPRO???
Всем заранее спасибо.


 
Соловьев ©   (2004-06-22 15:51) [1]

алиас настроить


 
Andrick ©   (2004-06-22 15:52) [2]

А псевдонимы на что? А BDE Administrator для чего делался?


 
Эдик   (2004-06-22 16:03) [3]

А как-нить без псевдонимов можно обойтись?


 
Sandman25 ©   (2004-06-22 16:04) [4]

Можно псевдоним сделать "локальный", в рамках только текущей программы. Смотреть методы Session


 
Соловьев ©   (2004-06-22 16:05) [5]

TSsession+Tdatabase


 
Эдик   (2004-06-22 18:36) [6]

Обнаружил глюк...
Настроил алиас, установил default driver=foxpro, теперь если в скрипте имя таблицы указывать как TableName.dbf - выбирает зюками, а если TableName, то все нормально, но не в этом проблема, если пользоваться последним вариантом, перестает работать функция преобразования типа cast и именнно при преобразовании в тип float или numeric... :-((
Какие есть мысли?


 
Соловьев ©   (2004-06-23 10:28) [7]

BDE->Configuration->Drivers->Native->FoxPro->Langdriver=dBASE RUS cp866
сохрани, и закрой все приложения использующие BDE, или перегрузи комп для надежности


 
Эдик   (2004-06-23 17:08) [8]

Я это сделал, выбрать получаеться, но никак нельзя в запросе работать с типом числовым (не инт) - numeric,float...
попробуйте вот тка:
select a.*,0 as Suma from Table a
или
select a.*,cast(0 as numeric(16,2)) as Suma from Table a
а вот так идет
select a.*,cast(0 as int) as Suma from Table a
А если Default driver поставит DBASE, то все выполняються...
Вот такие дела.


 
Sandman25 ©   (2004-06-23 17:10) [9]

cast(0 as decimal(16,2)) пробовали?


 
Эдик   (2004-06-23 17:21) [10]

>cast(0 as decimal(16,2)) пробовали?
пробовал, не получается...


 
Эдик   (2004-06-23 17:24) [11]

Попробуйте:
1. Сделайте алиас Type=Standart, Default driver=foxpro
2. сделайте выборку
select a.*,cast(0 as numeric(16,2)) as Suma from Table a


 
Sandman25 ©   (2004-06-23 17:27) [12]

[11] Эдик   (23.06.04 17:24)

У меня так работает. И с numeric, и с float


 
Эдик   (2004-06-23 17:42) [13]

попробуй не ставить расширение для таблицы, т.к. в противном слусае подключаеться драйвер DBASE
select a.*,cast(0 as numeric(16,2)) as Suma from Table.dbf a
у меня тоже работает, но текстовые поля - зюки, т.к. у DBASE подругому кодировка устанавливается...
Для fox-а 866 кодировка - байт по смещению 29 от начала файла $65
для DBASE он же но $26
Сделай кодировку 866 фоксовскую и таблицу с русскими буквами, сам увидешь...


 
Эдик   (2004-06-24 10:11) [14]

Я так понимаю, что драйвер FOXPRO дефолтно типу Numeric выставляет параметры (20,4), а потом с таким полем работать не может...  :-((
Dbase устанавливает по умолчанию (19,4), и нормально работает...
Все это можно проверить, сделав BachMove.
Есть идеи?


 
Эдик   (2004-06-24 19:25) [15]

Побород!!!
В настройках драйвера FOXPRO level надо поставить 25...
и все чудесно работает


 
Эдик   (2004-06-24 19:25) [16]

Поборол!!!
В настройках драйвера FOXPRO level надо поставить 25...
и все чудесно работает



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.092 c
1-1089009206
officeman
2004-07-05 10:33
2004.07.18
Про СТРОКУ с разделителями


1-1088750036
pesh
2004-07-02 10:33
2004.07.18
Help по компонетам Office


14-1088428826
Sandman25
2004-06-28 17:20
2004.07.18
Нужно ли "объяснять" Pi


3-1087534288
Amir
2004-06-18 08:51
2004.07.18
Восстановление Индексов


3-1087551415
Stupid
2004-06-18 13:36
2004.07.18
Kak в TQuery програмно добавить поле (вычислимое)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский