Форум: "Базы";
Текущий архив: 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