Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Вниз

Кодировка в linked Server mssql2000   Найти похожие ветки 

 
guest0   (2003-06-26 10:14) [0]

Здравствуйте !
Помогите, пожалуйста, с кодировкой dbf файлов. В mssql2000 линкуется сервер. Dbf размещены на локальном диске. В QA вместо русских символов чушь.


 
sniknik   (2003-06-26 10:35) [1]

чем помочь?
параметры линк сервера где? без исходныйх данных можно только в общем.
так можно лиш сказать - настрой драйвер/движок а нем использующийся на перекодировку досовой страници.


 
guest0   (2003-06-26 13:48) [2]

Параметры Linked Server:
Provider Name = Microsoft Jet 4.0 OLE DB Provider
Product Name = Microsoft.Jet.OLEDB.4.0
Provider string = DBASE IV

А в закладке Options установлено
Collation Name = Cyrillic_General_CI_AS

"настрой драйвер/движок а нем использующийся на перекодировку досовой страници." А где эта настройка в параметрах sp_addlinkedserver ?


 
sniknik   (2003-06-26 14:42) [3]

> "настрой драйвер/движок а нем использующийся на перекодировку досовой страници." А где эта настройка в параметрах sp_addlinkedserver ?
а вот для этого и нужны данные об используемых элементах, для ответа на этот вопрос "где" и "как"

в твоем случае (Jet 4.0), это в реестре, ветка
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase
параметр DataCodePage = OEM/ANSI
попробуй поменять то что счас стоит на другое.


 
guest0   (2003-06-26 15:00) [4]

Спасибо !
У меня было DataCodePage = OEM. Изменил на [ANSI]. Даже перезагрузил ОС. Вот невезуха, не помогло.


 
guest0   (2003-06-26 15:55) [5]

2 sniknik
Если изменить 29-й байт (считая с 0) заголовка dbf файла на 65 или C9 (Hex), то русские символы есть. Однако, это касается лишь dbf, созданных в FoxPro. А для dbf, созданных утилитой dbu.exe (Clipper) почему-то не проходит.


 
sniknik   (2003-06-26 16:32) [6]

> DataCodePage = OEM
это как раз перекодировать из досовской кодировки, если у тебя в досе (NC) видит шрифт правильно, то должно и тут видеть именно в в таком варианте.

а если у тебя разнотипные данные, то надо чегото по другому делать. кстати 29-й байт в таблице dBase jet инорирует, что наводит на мысль, а может ты не через него смотриш?

в Query Analizer - е проверь запрос вроде
SELECT * FROM dBase...YorTable
где
dBase - имя твоего линксервера
YorTable - имя таблици

проверь на обоих положениех регистра, перегружатся не обязательно, может только из анализера выйти зайти.


 
guest0   (2003-06-27 06:59) [7]

1. Извините за паузу.
2. Я установил в заголовке 29-й бит в 26 (Hex) и увидел RUS в обоих файлах - FoxPro и Clipper. При этом значение DataCodePage = OEM.

3. "29-й байт в таблице dBase jet инорирует, что наводит на мысль, а может ты не через него смотриш" - нет, в свойствах linked server стоит именно
Product Name = Microsoft.Jet.OLEDB.4.0

4. RUS появляются при любых значениях ключа DataCodePage: OEM and ANSI. Получается, что используемый драйвер игнорирует это значение ?

2 sniknik. Я выполнял этот запрос (select * from linkedserver...anytable) с помощью openrowset. Результат такой же.



 
sniknik   (2003-06-27 08:33) [8]

> 4. RUS появляются при любых значениях ключа DataCodePage: OEM and ANSI. Получается, что используемый драйвер игнорирует это значение ?

я то думал всегда что наоборот, игнорируется значение 29го байта. но да возможно, просто у тебя скорее всего версия jet-а старая (насколько не знаю). поясню
во первых вот что пишется в хелпе по джету ISAM dBase

Драйвер баз данных Paradox работает в одном из двух режимов, в зависимости от того, установлено ядро баз данных Borland Database Engine (BDE) или нет. Данные Paradox обновляются только с помощью BDE. Если BDE не используется, данные Paradox можно читать, экспортировать или присоединять только для чтения.

(то что они в dBase про парадокс пишут я не виноват(не спутал) так и есть в хелпе)
то есть, есть 2 режима работы но, хелп вообщето староват, многое оттуда уже не работает или работает не так с последним jet SP6 который стоит у меня. так у меня хоть и стоит BDE но настройки из него не срабатывают, по хелпу должны. у тебя похоже срабатывают, драйвер берется не тот которому параметр реестра нужен. получается твой jet соответствует хелпу то есть старее.

еще возможный вариант, у тебя таблици фокса поновее, у меня dBase IV и Fox до и = 2,5(DOS). т.е. довольно старые (работаю я стакими). в новых может байт имеет значение (посолиднее :-)) и интерпретируется драйвером по другому.

можеш попробевать линки к другим драйверам, к ODBC Visual Foxpro Driver к примеру, посмотреть как там. и поставить постедний Jet может все и изменится(если конечно зависит от версии).

можеш прислать мне табличку с установленным 29 байтом как у тебя, так чтобы были неправильные руские при DataCodePage = OEM я посмотрю на своей у себя. сравню. мои таблици открываются как уже говорил с игнорированием этого байта. посмотреть различия.


 
guest0   (2003-06-27 09:09) [9]

sniknik, извини, пока не могу работать с почтой.
Постараюсь сегодня послать. В этом случае:
файл s_w from Fox;
файл wkrlass3 from Clipper.
Кодировка на sql зависит только от 29-го байта. Он установлен в 26. ОС win2000 server.
А вот влияет ли 29-й байт на работу dos приложений ? В старых форматах dbf этот байт не использовался, а в поздних определял id кодировки. Так что, кажется, этот байт не должен влиять на работу индексов, разве, что может сбрасываться при переиндексации. Понятно, что dbf находятся в работе, а я перевожу все на sql.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-67782
Smithson
2003-07-09 10:58
2003.07.21
Как обнаружить взаимоблокировки


1-67842
Fotog
2003-07-07 19:07
2003.07.21
сервисы


1-67789
Cr@zy-EyE
2003-07-09 12:34
2003.07.21
Как зарегистрировать тип файла?


14-68072
Юрий Зотов
2003-03-04 23:16
2003.07.21
---|Ветка была без названия|---


14-67991
HolyGlory
2003-07-01 18:54
2003.07.21
Более эффективный способ создания галлюцинаций





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский