:: Вопросы по 1С
Мемо поля и кодировка
Dizzy
Автор

Сообщений: 22
Дата регистрации: 13.09.2010
Здравствуйте!
Вопрос такой, можно ли программно в 1С изменить кодировку dbf файла? Если да, то как это сделать?
Есть необходимость конвертировать данные из dbf в 1С. В dbf кодировка 866. При использовании XBase все замечательно, можно установить кодировку, данные конвертируются. Но есть одно но: в некоторых таблицах присутствуют мемо поля, а XBase с ними не работает. При использовании vfpoledb читаются и мемо поля, но беда с кодировкой
Буду очень признательна за помощь!
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
Converts character or memo fields or character expressions to another code page.
CPCONVERT(nCurrentCodePage, nNewCodePage, cExpression)
Parameters
nCurrentCodePage
Specifies the code page that cExpression is being converted from.
nNewCodePage
Specifies the code page to which cExpression is converted.
cExpression
Specifies the character expression that's converted.
Remarks
Note that CPCONVERT( ) isn't required for normal cross-platform functioning of the product. It is used strictly to access the underlying translation facilities of Visual FoxPro.
For example, if the variable gcCharExpr contains a character that looks like on the Macintosh (in code page 10000) then CPCONVERT( ) will return a character that looks like in Microsoft Windows (code page 1252):
Copy Code
CPCONVERT(10000, 1252, gcCharExpr)

Надо пробовать, поскольку этой ф-ии нет как в поддерживаемых, так и в не поддерживаемых ф-иях для OLEDB


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 19.04.11 08:46
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
Александр Жевелев

Сообщений: 2723
Откуда: Новосибирск
Дата регистрации: 09.10.2003
а не проще сделать маленький COM на фоксе, методы которого будут готовить данные в требуемом виде. Методы Com вызывать из 1с и брать все "на блюдечке с голубой каемочкой", можно и в обратном направлении данные отправлять, очень удобно и без головной боли с ODBC, OLEDB.
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
Dizzy
Автор

Сообщений: 22
Дата регистрации: 13.09.2010
Я так понимаю, это функция фокса? И без предварительной обработки таблиц средствами 1С не справиться?
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
1. Да.

2. Из 1C через OLEDB связаться с БД/dbf табличкой выполнить

select convert(866, 1251, field1) as f1 from table where ....


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
Dizzy
Автор

Сообщений: 22
Дата регистрации: 13.09.2010
А, даже так Спасибо за помощь, Вы мне очень помогли
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
Dizzy
Автор

Сообщений: 22
Дата регистрации: 13.09.2010
Подключаюсь к таблице, пишу "select cpconvert(866, 1251, BCONTENT) from [books]", при выполнении запроса выдает ошибку "String is too long to fit." Что не так?
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
select cast(cpconvert(866, 1251, BCONTENT) as M) from [books]


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Мемо поля и кодировка
Dizzy
Автор

Сообщений: 22
Дата регистрации: 13.09.2010
Все замечательно, работает Еще раз спасибо за помощь!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика