powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / ADO->dbf->русская кодировка. Проблема!
6 сообщений из 6, страница 1 из 1
ADO->dbf->русская кодировка. Проблема!
    #33307192
Mr.Dan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, нужна помощь! Работаю с dfb-файлом формата dBase IV через ADO:

Код: plaintext
1.
2.
ADOConnection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;\ 
Data Source=.;Extended Properties=dBase 5.0;"; 

Записываю таким образом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
AnsiString query = ""; 
 query += "INSERT INTO "+basepath+"CLIENTS VALUES\('" 
           +LastName->Text+"','"+Name->Text+"','"+Nymic->Text+"',"+ 
           ID->Text+",'"+City->Text+"','"+Address->Text+"','"+Seria->Text+ 
           "',"+Num->Text+",'"+Date->Date+"','"+Issued->Text+"'"+ 
           ")"; 
 Store->ADOCommand->CommandText = query; 
 Store->ADOCommand->Execute(); 

Когда открываю dbf-ник, то вижу вместо русских букв ???????? (сплошные вопросительные знаки). Почему так и как это лечится?


P.S. Пробовал другие форматы , например dBase for Windows но результат тотже. :(
...
Рейтинг: 0 / 0
ADO->dbf->русская кодировка. Проблема!
    #33307333
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) dBase 5.0 Это не есть dBase IV. Там есть разница, хоть и не особо значительная, но есть.
2) Через что ты смотришь свою dbf? Может клиент сам по себе русских букв показывать не умеет?
3) Что находится в 29-ом байте заголовка dbf? Какая там циферка стоит?
4) В какой кодировке текст в ADO-клиенте?
...
Рейтинг: 0 / 0
ADO->dbf->русская кодировка. Проблема!
    #33307489
Mr.Dan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl
1) dBase 5.0 Это не есть dBase IV. Там есть разница, хоть и не особо значительная, но есть.


Я пробовал и так:
Код:
1.
2.
ADOConnection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;\ 
Data Source=.;Extended Properties=dBase IV;"; 

Ничего не меняет

White Owl
2) Через что ты смотришь свою dbf? Может клиент сам по себе русских букв показывать не умеет?

Умеет, однозначно, т.к. я пробовал смотреть через Database Desktop, FoxPro и плагин для Total Commander - результат одинаковый... А создавал базу в Database Desktop.

White Owl
3) Что находится в 29-ом байте заголовка dbf? Какая там циферка стоит?

0x57 - кодовая страница 1251 Windows ANSI

White Owl
4) В какой кодировке текст в ADO-клиенте?

Что имеется в виду в ADO-клиенте? В VCL компоненте где набирается русский текст и откуда значения попадают в dbf? Т.е. TEdit-е? По-идее в 1251 , хотя не уверен... а как узнать/поменять?
...
Рейтинг: 0 / 0
ADO->dbf->русская кодировка. Проблема!
    #33307557
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Danя пробовал смотреть через Database Desktop, FoxPro и плагин для Total Commander - результат одинаковый... А создавал базу в Database Desktop.
А открыть в хекс-редакторе и проверить что там в действительности? :)

Mr.Dan White Owl
3) Что находится в 29-ом байте заголовка dbf? Какая там циферка стоит?

0x57 - кодовая страница 1251 Windows ANSI
Не верно. Должно быть 0xC9
http://support.microsoft.com/default.aspx?scid=kb;en-us;129631

Mr.DanЧто имеется в виду в ADO-клиенте? В VCL компоненте где набирается русский текст и откуда значения попадают в dbf? Т.е. TEdit-е? По-идее в 1251 , хотя не уверен... а как узнать/поменять?
Узнать просто - прочитать проперть Text (или как она там) и посмотреть в отладчике в хекс-виде :) Как поменять - некоторые библиотеки виджетов умеют делать конвертацию кодировок сами, кажется VCL не умеет... Проще всего, прочитать текст из поля, прогнать через собственную процедуру конвертации и послать в базу.
...
Рейтинг: 0 / 0
ADO->dbf->русская кодировка. Проблема!
    #33308129
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была такая шняга: крокозяблы в гриде (MS ADO DataGrid Control) отображались (смотрел dbf). Причиной оказалась установка Бульдозерного движка баз данных (BDE). Так вот эта зараза где-то в реестре меняла настройки dBase драйвера (устанавливала code page в Ansii). Приходилось менять кодовую страницу на CP866.
...
Рейтинг: 0 / 0
ADO->dbf->русская кодировка. Проблема!
    #33308310
Mr.Dan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl
А открыть в хекс-редакторе и проверить что там в действительности? :)

Открывал, действительно абра-кадабра :)

White Owl
Не верно. Должно быть 0xC9
http://support.microsoft.com/default.aspx?scid=kb;en-us;129631

Вот тебе на, а я зрил в другой источник . Поистине информация разная.
Странно только то что базу-то я создавал в Database Desktop-е, который почему-то выставил не C9, а 0x57 :( ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / ADO->dbf->русская кодировка. Проблема!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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