Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с кодировкой [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]

чтобы не заставлять пользователя менять кодировку таблицы руками (т.е. самому) ???

Делай это в своей программе перед импортом.


Наверх

Титульная страница Поиск, карта сайта Написать письмо