Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: CL | DM;

Вниз

конвертирование 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-89892
Talla2k
2003-11-15 12:29
2003.11.27
MDI и Child


14-90104
Incomer
2003-11-04 13:20
2003.11.27
Запись звука


3-89682
OlegID
2003-11-06 14:01
2003.11.27
TParametr


3-89749
ST_
2003-11-07 22:02
2003.11.27
DBCtrlGrid


1-89955
ghg
2003-11-18 15:57
2003.11.27
string и memo1.Lines