![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сконвертировать DBF в BD(Paradox) [D6, dBase, FoxPro, Paradox]
Stanislav SM © (2003-04-16 11:53:00)Уваж. мастера, у меня имеется таблица FoxPro (DBF-файл ДОСовского приложения). Мне нужно сделать программу конвертор, которая этот файл перенесет с некоторыми изменениями в таблицу Paradox (DB-файл). Возникает проблема: при открытии DBF текст отображается ненормально (явное несовпадение кодировки). И ничего не помогает: пробовал менять тип таблицы (ttFOXPRO, ttDBASE), ANSI. Помогите пожалуйста кто сможет.
Stas (2003-04-16 14:00:00) [1]Если с таблицей в DOS работать не будешь, то можно преобразовать. Вот код:
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;
гончий (2003-04-16 12:09:00) [2]Кроме того, что нужно настроить BDE правильным образом, может возникнуть ситуация, что кодировка самой таблицы "кривая". Советую подобрать кодировку в Database Workshop - там видно как будут выглядеть строковые поля при различных кодировках - очень легко подбирается :) http://www.degisy.com
Соловьев (2003-04-16 12:05:00) [3]
> И ничего не помогает: пробовал менять тип таблицы (ttFOXPRO,
> ttDBASE), ANSI.
не здесь меняют, а в настройках BDE: драйвер и алиас.