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

Вниз

конвертирование dbf-файлов   Найти похожие ветки 

 
Overstep   (2003-11-07 15:49) [0]

Здравствуйте уважаемые мастера. У меня такая проблема. Данные в dbf-файле находятся в дос кодировке и при импорте в SQL Server 2000 она выдает бред, так как будто это win кодировка. Указывать кодировку при импорте из dbf файлов, такой опции я не нашел, а по умолчанию она считает что информация в win кодировке. Пробовал утилиту DBFViewer2000: просмотреть могу, но сохранить эту же таблицу, но уже с win кодировкой не получилось.
Посоветуйте пожалуйста как лучше зделать, может я просто чегото не заметил. Спасибо!


 
Stas   (2003-11-07 16:17) [1]

Эта функция переведет твою таблицу в нужный формат.
Напишши простую прогу и конвертируй.

aDBHnd - TDatabase.Handle;
aTblType - "PARADOX"/"DBASE"/"FOXPRO"
aLangDriver - "ancyrr".

procedure ChangeLangDriver( aDBHnd: HDBIDB; aTable: TTable; const aTblType, aLangDriver: String);
var
TblExt: string;
TblDesc: CRTblDesc;
OptDesc: FLDDesc;
OptData: array [0..250] of Char;
Cur: hDBICur;
Rec: CFGDesc;
begin
FillChar( OptDesc, SizeOf( OptDesc ), #0);
FillChar( TblDesc, SizeOf( TblDesc ), #0);
StrCopy( OptDesc.szName, "LANGDRIVER");
OptDesc.iLen := Length(aLangDriver) + 1;
with TblDesc do
begin
StrPCopy( szTblName, aTable.TableName);
StrCopy( szTblType, PChar(aTblType));
iOptParams := 1;
pfldOptParams := @OptDesc;
pOptData := @OptData;
end;
StrPCopy( OptData, aLangDriver);
Check( DbiDoRestructure( aDBHnd, 1, @TblDesc, nil, nil, nil, False ) );
end;


 
sniknik   (2003-11-07 16:23) [2]

можно просто указать драйверу из которого читается что используется дос кодировка.
для Jet (если конвертация идет через него) за это отвечает ключ реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage
два значения OEM и ANSY, попробуй оба. если драйвер не тот используеш (и параметры не знаеш) то можеш просто запросом из SQL Server-а (проверь в Query Analizer)
SELECT *
FROM OpenDataSource("Microsoft.Jet.OLEDB.4.0", "Data Source="D:\";User ID=Admin;Password=;Extended properties=dBase IV")...dbfTable
этот точно указанные параметры в реестре использует. (только переделать на SELECT INTO ..)


 
Overstep   (2003-11-07 16:35) [3]

Извиняюсь, в утилите конвертер нашел, но такая же возможность должна быть и в SQL Server. Может подскажете? Я пробовал почти все предлагаемые сервером драйвера для dbf файлов, но результат тотже. Да и я напутал SQL Server по умолчанию у меня воспринимает дос кодировку.


 
Stialy   (2003-11-07 19:36) [4]

Я использую
Для дос кодировки - Driver do Microsoft dBase (*.dbf)
Для win кодироки - Visual FoxPro VFP Driver (*.dbf)



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

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

Наверх




Память: 0.45 MB
Время: 0.008 c
14-90073
FFFh
2003-11-05 13:42
2003.11.27
Момогите разобраться с мобилой!


4-90159
Chris
2003-10-05 06:17
2003.11.27
Проблема безопасности в Win2000


1-89935
malefik
2003-11-18 09:03
2003.11.27
Не происходит события ONTIMER


3-89700
stud
2003-11-10 14:39
2003.11.27
что такое может быть с отчетом??


14-90119
Andrey V.
2003-11-04 07:16
2003.11.27
Интегрированный звук - суксь





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский