Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FoxPro, dbase -> mysql
Forum PHP.pl > Forum > Bazy danych
gutek84
Witam,
Mam problem z synchronizacja baz danych. Próbowalem robić to na kilka sposobów.
Pliki baz danych Fox Pro (pliki dbf) sa w formacie cp866 - rosyjska czcionka, chce przekonwertowac je na utf-8 i:

Plik konwertuje się prawidłowo, otwieram do odczytu z konsoli widzę cyrylicę. Do synchro używam dbf2mysql. Przed konwersja plik sie laduje do mysql ale sa krzaki(to odpada), po konwersji dostaje blad \\\"Invalid Header\\\". Plik dbf mozna otworzyc w OpenOffice. Przykladowo mam plik zawierajacy 2 kolumny w headersie Code,N,4,0 i Name,C,20. Zmieniajac recznie header Name,C,20 na Name,C,80, po konwersji iconv (tym shell\\\'owym) i po synchronizacji wszystko jest OK - tylko ze tych plików jest ok 100 i sa codziennie zmieniane.
Pytanie: Czy można jakoś wyedytować nagłówki kolumn w pliku DBF?(chodzi mi o skrypt, narzedzia shellowe) bez modyfikowania plików recznie.
Domyślam się zapis w cyrylicy slowa jest krotszy niz w utf-8 i pole Name zamiast maksymalnie zawierac 20znakow zajmuje wiecej i to powoduje blad po konwersji z cp866 na utf-8.
Plik dbf po otwarciu OpenOfficem(w cp866)
    1. CODE,N,4,0 NAME,C,20
    2. 1 ул.Мореходная
    3. 2 ул.Мореходная
    4. 3 ул.Мореходная


po hexdumpie - same nagłówki kolumn
  1. pobierz, plaintext
    1. 00000000 03 09 07 10 e6 02 00 00 61 00 55 00 00 00 00 00 |........a.U.....|
    2. 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
    3. 00000020 43 4f 44 45 00 00 00 00 00 00 00 4e 00 00 00 00 |CODE.......N....|
    4. 00000030 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
    5. 00000040 4e 41 4d 45 00 00 00 00 00 00 00 43 00 00 00 00 |NAME.......C....|
    6. 00000050 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|


Pliki dbf dostaje tylko do odczytu, ewentualnie moge je kopiwac tymczasowo do tempa.
Jakieś sugestie odnośnie synchronizacji?
Może idę w złą strone, probujac edytowac naglowki?

dzieki z gory za pomoc
pozdrawiam
trident
Problem można rozwiązać na wiele sposobów najprościej napisać kawałek kodu w VFP który otworzy dbf-a i dokona wpisu do mysql-a po konwersji lub zapisać jako plik tekstowy gotowy do wciągnięcia przez mysql-a . Tego typu rozwiązanie wydaje sie najprostsze i możesz je wpełni zautomatyzowac skoro mówisz o 100 plików.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.