MS Access und phpMyAdmin: Problem beim Export/Import einer XML-Datei

15 Oct 2011 um 15:17 - Allgemein

In dieser Woche wurde ich echt überrascht - der Grund dafür war die Zusammenarbeit von MS Access und phpMyAdmin.

Mit phpMyAdmin kann man die Tabellen als XML-Datei exportieren. Manche Versionen von phpMyAdmin bieten dazu die erweiterten Exportmöglichkeiten (Struktur-, Funktion-, Procedure- und Viewsexport). Die Version bei meinem Hostinganbieter kann die XML-Dateien ohne zusätzliche Einstellungen exportieren. Das hat eigentlich immer einwandfrei funktioniert.

Diesmal wollte ich eine Tabelle exportieren, in der viele Spalten mit NULL-Werte gefüllt wurden. Die Zieldatenbank war MS Access 2010. Bei MS Access wählt man "Externe Daten -> XML-Datei" aus und arbeitet weiter mit dem Exporttool.

Hier kann man Struktur, Daten mit Struktur oder nur Daten importieren. Die vorgeschlagene Struktur kann man nochmal per Click selbst ansehen. Leider habe ich einige Felder nicht gesehen - komisch...

phpMyAdmin exportiert die Felder mit NULL-Werten nicht, so dass nicht jeder Eintrag die gleiche Struktur hat. Beispiel dazu:

 

 <xml>
<item>
<a>something 1</a>
  <item>
...
<item>
<a>Hier wird Spalte "b" nicht exportiert, weil NULL-Wert hat.</a>
  <b>Nicht NULL-Wert</b>
  <item>
</xml>

 

Theoretisch sollte beim Import MS Access alle Einträge durchsuchen und alle Spalten "sammeln". Wahrscheinlich werden zuerst die ersten Einträge bearbeitet und die Struktur für den Rest festgelegt. Theoretisch sollte man die Spalten "a" und "b" haben. In Wirklichkeit hat man nur "a".

Dann versuchte ich zuerst die Struktur importieren. Es läuft einwandfrei, nur die NULL-Felder, die am Anfang vorkommen, tauchen nicht in der Struktur auf. Dann habe ich die Tabelle selbst um die fehlenden Felder erweitert und noch mal die XML-Datei importiert. Aber MS Access berücksichtigt neue Spalten sowieso nicht.

Dann habe ich XML-Datei geöffnet und händisch im ersten Datensatz um <b></b> erweitert. Jetzt ging es! Was aber komisch ist - die Struktur des ersten Datensatzes ist nicht entscheidend, weil andere Felder, die im ersten Datensatz nicht stehen (also mit NULL-Wert in der Datenbank), doch in der resultierenden Struktur stehen.

Kommentare

Bisland keine Kommentare - sei der erste!


© 2008 Anton Pavlushko - Webentwicklung, Internetmarketing und Suchmaschinenoptimierung (SEO)

0.0066659450531006 sec