Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL -- KOI8R в VFP 1251 / 4 сообщений из 4, страница 1 из 1
18.01.2005, 17:18
    #32870723
DMITRY_PEREDISTY
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL -- KOI8R в VFP 1251
Получаю таблицу в KOI8R , а хочется в 1251
а серверный чел, ну не хочет у себя её переводить.
Набрал в поиске по форуму "KOI8" нет НИЧЕГО!!! SOS!
может я чего не понял как искать по форуму ? Как быть плиз...

local lnHandle
lnHandle= SQLCONNECT('PostgreSQL')
if lnHandle > 1
=SQLEXEC(lnHandle,"SELECT * FROM currency","suka")
sele suka

* ??? !!!
browse norm fields x=cpconvert( FULLNAME, 866 , 1251 )

=SQLDisconnect(lnHandle)
endif
...
Рейтинг: 0 / 0
19.01.2005, 08:29
    #32871399
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL -- KOI8R в VFP 1251
Рой в сторону доки по PostreSQL там есть настройка SET CLIENTENCODING Win1251 (кажется так, щас не помню) после утсановки соединения
...
Рейтинг: 0 / 0
20.01.2005, 01:21
    #32873517
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL -- KOI8R в VFP 1251
Hi DMITRY_PEREDISTY!

KOI8R это не 866, а 20866 коловая страница, и напрямую её CPCONVERT не
поддерживает. Но всегда можно сделать через АПИ:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
? ExtCPConvert("рПМХЮБА ФБВМЙГХ Ч KOI8R , Б ИПЮЕФУС Ч 1251",  20866 , 
 1251 )
PROCEDURE ExtCPConvert
LPARAMETERS tcText, tnCPFrom, tnCPTo
* Конвертация из одной кодовой страницы в другую
* Поддерживает все установленные в ОС кодовые страницы,
* в отличии от фоксового CPCONVERT()
DECLARE INTEGER MultiByteToWideChar IN WIN32API ;
  INTEGER, INTEGER, STRING, INTEGER, STRING @, INTEGER
DECLARE INTEGER WideCharToMultiByte IN WIN32API ;
  INTEGER, INTEGER, STRING, INTEGER, STRING @, INTEGER, STRING, INTEGER @
LOCAL lnInputLen, ln1, lnBufLen, lcBuf, lnOutLen, lcOut
lnInputLen = LEN(m.tcText)
ln1 =  0 
lnBufLen = MultiByteToWideChar(m.tnCPFrom,  0 , m.tcText, m.lnInputLen,  0 ,  0 )
lcBuf = SPACE(m.lnBufLen *  2 )
MultiByteToWideChar(m.tnCPFrom,  0 , m.tcText, m.lnInputLen, @m.lcBuf, 
m.lnBufLen *  2 )
lnOutLen = WideCharToMultiByte(m.tnCPTo,  0 , m.lcBuf, m.lnBufLen *  2 ,  0 ,  0 , 
"?", @m.ln1)
lcOut = SPACE(m.lnOutLen /  2 )
WideCharToMultiByte(m.tnCPTo,  0 , m.lcBuf, m.lnBufLen *  2 , @m.lcOut, 
m.lnOutLen /  2 , "*", @m.ln1)
RETURN m.lcOut
ENDPROC

Тут ещё не помешала бы проверка установлена ли соответствующая таблица
конвертации (т.е. поддержка кодировки) в ОС, но для твоего случая и ОС где
есть 1251 это не обязательно.

Другой способ - самому нарисовать таблицу перекодировки, и пользоваться
например CHRTRAN()...

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
21.01.2005, 11:27
    #32876581
DMITRY_PEREDISTY
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL -- KOI8R в VFP 1251
Большой огромный СПАСИБ!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL -- KOI8R в VFP 1251 / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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