![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с кодировкой [D6]
Rel_ © (2003-09-09 08:53:00)
Мастера, просветите !!! Возникла следующая проблема:
Работаю с ORACLE через компоненты прямого доступа (минуя BDE). Заливаю локальную таблицу (dBase) на сервер. Таблицы, в которых выставлена кодировка dBase866 Rus копируются отлично. В таблицах, в которых выставлена кодировка ascii ... - искажается русский текст.
Как энтого миновать - т.е. предусмотреть в программе решение данного вопроса, чтобы не заставлять пользователя менять кодировку таблицы руками (т.е. самому) ???
Rel_ (2003-09-09 10:28:00) [1]
to Reindeer Moss Eater © Спасибо, обязательно попробую !!!
to roottim : ryab_el@rambler.ru - спасибо за помошь !!!
roottim (2003-09-09 10:19:00) [2]
просто ради любопытства...
куда выслать? :)
Reindeer Moss Eater (2003-09-09 10:04:00) [3]
TSession.ModifyDriver - решение этой проблеммы
Rel_ (2003-09-09 10:02:00) [4]
to Reindeer Moss Eater ©
Без проблем :
языковой драйвер в BDE: dBASE RUS cp866
если данные в файле в той же кодировке - то всё OK, если они представлены в "ascii"ANSI кодировке - то беда.
Вот это и есть суть моего вопроса !!!
Rel_ (2003-09-09 09:58:00) [5]
to roottim
Конечно присылай - буду крайне благодарен. Если бы ещё исходничек (если не очень жалко). У меня просто тоже есть модуль по перегону на ORACLE (работает мгновенно) - вот только перед его запуском надо справиться с указанной проблемой (могу прислать тоже).
Просто мой модуль работает в комплексе, поэтмоу исходник, конечно, был бы намного желательнее (чтоб я его мог изменить под себя или хотябы посмотреть твой механизм копирования).
Заранее благодарен !!!
Reindeer Moss Eater (2003-09-09 09:57:00) [6]
вот на этом этапе как избежать проблемы???
Сначала надо вникнуть в суть проблемы.
Выяснить в какой кодировке присутствуют данные в файле, выяснить какой языковый драйвер использует БДЕ для DBase и т.д.
Rel_ (2003-09-09 09:52:00) [7]
Сначала надо узнать что делает пользователь "руками" что бы ему полегчало.
Давай упростим задачу:
Перед тем, как таблица будет залита на сервер, она должна открыта примитивным запросом с помошью объекта TQuery: "select * from "--path--"". Вот на этом шаге и возникает проблема с кодировкой.
Представь, что пользоваль руками нажимает только кнопку на форме и затем выполняется запрос - вот на этом этапе как избежать проблемы???
roottim (2003-09-09 09:47:00) [8]
если очень надо могу прислать свою мульку в ехе по перегону дбейз в оракле (работает в 2-х режимах Direct path или DML)
Reindeer Moss Eater (2003-09-09 09:35:00) [9]
1) Как энто сделать программно
Сначала надо узнать что делает пользователь "руками" что бы ему полегчало.
2) Как при этом обеспечить сохранность исходной локальной таблицы. Исходная таблица должна остаться в неизменном состоянии. Создавать копию таблицы (с изменёнными параметрами) и затем убивать её поле заливки (?? наверное ??) не подойдёт, т.к. размеры исходных таблиц могут быть просто грандиозными (2 гега для локальной таблицы - это много).
1. Купить диск большего размера
2. Отменть внесенные изменения в файл после импорта.
3. Иметь правильный Dbase-файл, не требующий доп.телодвижений
4. Сменить библиотеку доступа к Dbase, которой наплевать на неправильные байты
5. И т.д.
Rel_ (2003-09-09 09:20:00) [10]
Я не против, но:
1) Как энто сделать программно (там, кажется, какойто байт необходимо выставлять).
2) Как при этом обеспечить сохранность исходной локальной таблицы. Исходная таблица должна остаться в неизменном состоянии. Создавать копию таблицы (с изменёнными параметрами) и затем убивать её поле заливки (?? наверное ??) не подойдёт, т.к. размеры исходных таблиц могут быть просто грандиозными (2 гега для локальной таблицы - это много).
Reindeer Moss Eater (2003-09-09 09:05:00) [11]
чтобы не заставлять пользователя менять кодировку таблицы руками (т.е. самому) ???
Делай это в своей программе перед импортом.