Главная страница
    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.01 c
3-89703
Dany
2003-11-10 14:21
2003.11.27
NUMERIC(32) to Integer


1-89875
Dmitriy M. Volkov
2003-11-16 00:10
2003.11.27
FindFirst, FindNext error codes


7-90138
bosso
2003-09-17 13:15
2003.11.27
Динамическая загрузка процедуры


1-89920
Olga_Oo
2003-11-18 10:57
2003.11.27
Qreport


14-90071
Игорь Шевченко
2003-11-04 16:59
2003.11.27
Алексей (vuk), поздравляю!





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