Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Здравствуйте!

У меня такой вопрос:
Делаю селект из BDF (dBase IV кодировка win1251)

SELECT * from openrowset('MSDASQL','DRIVER={Microsoft dBase Driver (*.dbf)};DefaultDir=d:\tar\base;FIL={dBase IV}', 'select * from citykod')

Блин .... все русские символы закорючьками ..... как бы кодировку поменять, кто нибудь с этим сталкивался ?
17 дек 05, 10:58    [2181830]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
evgeniy_v
Guest
другой программой - например, dbfnavigator
17 дек 05, 11:11    [2181835]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
evgeniy_v
другой программой - например, dbfnavigator

Да мне не нужно смотреть данные, мне нужно в ХП взять данные из отдельного файла DBF.
17 дек 05, 12:43    [2181908]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
evgeniy_v
другой программой - например, dbfnavigator

Но все равно, ... спасибо за внимание :)
17 дек 05, 14:36    [2182054]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
Slider_spb
Member

Откуда:
Сообщений: 802
Некоторые драйвера умеют делать перекодировку... Или воспользуйся функцией перкодировки OEM в ANSI...
17 дек 05, 19:52    [2182509]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
Slider_spb
Member

Откуда:
Сообщений: 802
В OpenRowset укажи соотвествующий CodePage
BOL
OPENROWSET
( { 'provider_name' , { 'datasource' ; 'user_id' ; 'password'
| 'provider_string' }
, { [ catalog. ] [ schema. ] object
| 'query'
}
| BULK 'data_file' ,
{ FORMATFILE = 'format_file_path' [ <bulk_options> ]
| SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB }
} )

<bulk_options> ::=
[ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ , ERRORFILE = 'file_name' ]
[ , FIRSTROW = first_row ]
[ , LASTROW = last_row ]
[ , MAXERRORS = maximum_errors ]
[ , ROWS_PER_BATCH = rows_per_batch ]

17 дек 05, 19:57    [2182523]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Может я что то не правильно написал ?

select city_name as cit from openrowset('MSDASQL',
'DRIVER={Microsoft dBase Driver (*.dbf)};
DefaultDir=e:\base1\;SourceType=DBF;codepage=1251, deleted=no', 'select city_name from citykod' )

Все равно все ироглифами :(
18 дек 05, 12:07    [2183137]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
Какой collation на сервере?
Уверены ли, что в DBF кодировка 1251?
18 дек 05, 13:52    [2183215]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
Slider_spb
Member

Откуда:
Сообщений: 802
Попробуй CodePage выставить 'OEM'. Или 866.
18 дек 05, 14:29    [2183246]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Breakneck
Какой collation на сервере?
Уверены ли, что в DBF кодировка 1251?


На сервере collation: SQL_Latin1_General_CP1251_Cl_AS
BDF Кодировка Win ....1251
19 дек 05, 08:29    [2184183]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Slider_spb
Попробуй CodePage выставить 'OEM'. Или 866.

Пробовал и 'OEM', 866, 1251. .... - Во всех случаях показывает такую ерунду:

LєфшюЄхъёЄ 260-0
L¦TLL
L¦T+++
L¦+L
L¦+L 32757
LT¦LT-
19 дек 05, 08:31    [2184184]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
sqladm
Guest
попробуй руками выставить в любом редакторе в dbf-файле на 30 позиции символ с кодом 26 - это символ &
19 дек 05, 08:46    [2184192]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
AndreyF
Member

Откуда:
Сообщений: 432
sqladm
попробуй руками выставить в любом редакторе в dbf-файле на 30 позиции символ с кодом 26 - это символ &


За кодовую страницу в DBF отвечает 29 байт...
19 дек 05, 09:18    [2184248]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
sqladm
Guest
опс - точно 29 - ошибочка вышла
19 дек 05, 09:20    [2184253]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
sqladm
Guest
или я гоню уже - у меня во всех файлах на 30 позиции стоит кодировка
19 дек 05, 09:23    [2184258]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
AndreyF
Member

Откуда:
Сообщений: 432
sqladm
или я гоню уже - у меня во всех файлах на 30 позиции стоит кодировка


Да, гонишь. Посмотри описание формата DBF-файла. Именно 29-ый байт отвечает за кодировку.
19 дек 05, 09:30    [2184279]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
sqladm
попробуй руками выставить в любом редакторе в dbf-файле на 30 позиции символ с кодом 26 - это символ &


В любом редакторе - это значит блокнот подойдет ?

Попробовал в блокноте, .... после чего табличка ломаеться :(

А вообще на 29-30 позиции стоит W
19 дек 05, 10:01    [2184362]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
AndreyF
Member

Откуда:
Сообщений: 432
mr.dfox
Попробовал в блокноте, .... после чего табличка ломаеться :(

А вообще на 29-30 позиции стоит W


Используй какой-нибудь Hex-редактор.

А по поводу байтика и его значения - посмотри здесь:

www.delphikingdom.com/asp/viewitem.asp?UrlItem=/helloworld/dbheader.htm
19 дек 05, 10:07    [2184382]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Сейчас в другой редактор взял, поменял W - на &.
.....Табличка открывается ...., но результат тотже что и раньше :(
19 дек 05, 10:12    [2184400]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Так ничего и не получилось :(
20 дек 05, 15:25    [2190603]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
Andrew
Member

Откуда: Ukraine
Сообщений: 320
try
select Nmk as cit from openrowset('MSDASQL', 'DRIVER={Microsoft FoxPro VFP Driver (*.dbf)};SourceDB=C:\;SourceType=DBF;codepage=OEM;deleted=no', 'select Nmk from St270201' )  
20 дек 05, 17:58    [2191598]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из DBF проблема с кодировкой  [new]
mr.dfox
Member

Откуда: Где где .. в караганде
Сообщений: 538
Andrew
try
select Nmk as cit from openrowset('MSDASQL', 'DRIVER={Microsoft FoxPro VFP Driver (*.dbf)};SourceDB=C:\;SourceType=DBF;codepage=OEM;deleted=no', 'select Nmk from St270201' )  


Огромнейшее спасибо! Работает!
22 дек 05, 06:23    [2196872]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить