Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> FoxPro, dbase -> mysql, synchronizacja baz danych
gutek84
post 11.08.2009, 14:05:15
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 4
Dołączył: 9.10.2007
Skąd: Morąg

Ostrzeżenie: (0%)
-----


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

Ten post edytował gutek84 11.08.2009, 14:15:15
Go to the top of the page
+Quote Post
trident
post 7.09.2009, 10:47:10
Post #2





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 7.09.2009

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 19:41