Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 DBF+ODBC+кирилица большие буквы  [new]
Alexandoros
Member

Откуда:
Сообщений: 446
Создал odbc конект к dbfникам, конекчусь, работаю все ок. Когда в текстовом поле кирилица, то все вроде нормально - я их читаю, делаю CharToOem и все хорошо. Но это работает если символы маленькие. А если символы большие оно выдает какуюто х-ню, которая не дешифруется ничем. Может ктото сталкивался? Как обойти?

Вот отрывок из кода
if(ODBCCon->BindCol(1, SQL_C_CHAR,	&Record.OtdelName,	0x400, Buff))	return 1;

if(ODBCCon->ExecSQLReq("SELECT S_PGR.NAME FROM S_PGR"))
							   return 1;
while( !ODBCCon->Fetch() )
{

CharToOem(Record.ItemName, str); // Все ок если маленькие символы, а если большие то не ок :(
.....
}
29 мар 06, 19:15    [2504028]     Ответить | Цитировать Сообщить модератору
 Re: DBF+ODBC+кирилица большие буквы  [new]
MVFP
Member

Откуда:
Сообщений: 134
А через ADO не пробовали ?
Таблички, на a.malnev@inbox.ru.
29 мар 06, 21:58    [2504463]     Ответить | Цитировать Сообщить модератору
 Re: DBF+ODBC+кирилица большие буквы  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Alexandoros!

Просто надо в таблице проставить 29-й байт в значение соответствующее
кодировке данных - а не заниматься сексом с CharToOem :)
Предполагается конечно, что используется нормальный ODBC драйвер - например
Microsoft Visual Foxpro ODBC Driver версии 6.1.8629.1

Posted via ActualForum NNTP Server 1.3

30 мар 06, 02:45    [2504863]     Ответить | Цитировать Сообщить модератору
 Re: DBF+ODBC+кирилица большие буквы  [new]
Alexandoros
Member

Откуда:
Сообщений: 446
Это просто ....
Я порылся в нете. Документации на dbf все разные. В заголовке моего dbf ника стоит версия 03 - File without DBT. А вот с кодировками неоднозначности.

CP866 - (из разных источников) = 26h, 65h, 66h
CP1251 - (из разных источников) = C9h, 57h

Опытным путем проверил что подходят значения 66h и C9h, - при этом читается маленькая кирилица, которую потом ВОЗМОЖНО преобразовать через CharToOEM. Большим буквам без разницы - выдается фигня. Записи в таблице хранятся в кодировке 1251 - 100%, проверил Far'ом.

Компилятор визуал студия 7, драйвер Microsoft dBase driver 4.00.6205.00, win2k3.

Драйверов я уже перепробовал штук 5 (в одбс сорсе есть несколько драйверов для работы с dbf ), одно и то же. Блин, я б прочитал файл в ручную, но мне нужно запросы на пару таблиц создавать, не писать же субд, епт.

Пробовал читать не как SQL_C_CHAR, а как SQL_C_BINARY - одинаково.
30 мар 06, 11:59    [2505972]     Ответить | Цитировать Сообщить модератору
 Re: DBF+ODBC+кирилица большие буквы  [new]
5631
Member

Откуда:
Сообщений: 452
Структура DBF:
http://inform.p-stone.ru/libr/db/teoretic/data/public1/
30 мар 06, 12:09    [2506031]     Ответить | Цитировать Сообщить модератору
 Re: DBF+ODBC+кирилица большие буквы  [new]
Alexandoros
Member

Откуда:
Сообщений: 446
Igor Korolyov

Hi Alexandoros!

Просто надо в таблице проставить 29-й байт в значение соответствующее
кодировке данных - а не заниматься сексом с CharToOem :)
Предполагается конечно, что используется нормальный ODBC драйвер - например
Microsoft Visual Foxpro ODBC Driver версии 6.1.8629.1

Posted via ActualForum NNTP Server 1.3



Поменял байт на C9h, поставил Microsoft Visual Foxpro ODBC Driver версии 6.1.8629.1, и ПОШЛО.
Кажись проблема была в том что драйвер был старый. Всем спасибо.
30 мар 06, 13:19    [2506461]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить