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