CSV in MDB teilweise importieren

24/07/2008 - 19:12 von Thomas Hübner | Report spam
Hi All,

folgendes Szenario:

MDB mit ID,TOOL_ID,Name und 800 Datensàtzen.
CSV mit ID,Name und 23000 Datensàtzen
Wenn MDB.TOOL_ID nicht leer ist ist CSV.Name über CSV.ID vorhanden

die MDB wàchst tàglich um ca. 100 Datensàtze. Die CSV wàchst jeden Tag
um 2000 Datensàtze. Ich muß jeden Tag die CSV gegen die MDB laufen
lassen und anhand MDB.TOOL_ID = CSV.ID die Spalte MDB.Name mit CSV.Name
zu füllen. MDB ist also eine Untermenge der CSV. Beide Dateien liegen im
Netzlaufwerk.

Gibt es ein probates Mittel die leeren MDB.Name aus der CSV zu picken?
Momentan lese ich die komplette CSV zeilenweise in eine Hilfstabelle und
lasse dann mit einem SQL Befehl den abgleich machen. Das Zeilenweise
einlesen würde ich mir gerne schenken da es auch die DB unnötig
aufblàht. Die CSV könnte ich temporàr nach lokal kopieren wobei das bei
der jetzigen zeilenweise Methode kaum eine Rolle spielt da der
streamreader die Datei eh komplett einliest.

Gruß,
Thomas
 

Lesen sie die antworten

#1 Peter Fleischer
24/07/2008 - 20:01 | Warnen spam
"Thomas Hübner" schrieb im Newsbeitrag
news:g6ad60$v3s$

MDB mit ID,TOOL_ID,Name und 800 Datensàtzen.
CSV mit ID,Name und 23000 Datensàtzen
Wenn MDB.TOOL_ID nicht leer ist ist CSV.Name über CSV.ID vorhanden

die MDB wàchst tàglich um ca. 100 Datensàtze. Die CSV wàchst jeden Tag um
2000 Datensàtze. Ich muß jeden Tag die CSV gegen die MDB laufen lassen und
anhand MDB.TOOL_ID = CSV.ID die Spalte MDB.Name mit CSV.Name zu füllen.
MDB ist also eine Untermenge der CSV. Beide Dateien liegen im
Netzlaufwerk.

Gibt es ein probates Mittel die leeren MDB.Name aus der CSV zu picken?



Hi Thomas,
wie wàre es mit einer UPDATE-SQL-Anweisung für die Jet, wo die CSV als
Textdatei direkt die mdb aktualisiert.

Momentan lese ich die komplette CSV zeilenweise in eine Hilfstabelle



Das ist aber nur nötig, wenn du Prüfungen und Konvertierungen durchführen
musst. Wenn di CSV-Datei "sauber" ist, kannst du sie direkt importieren.

und lasse dann mit einem SQL Befehl den abgleich machen. Das Zeilenweise
einlesen würde ich mir gerne schenken da es auch die DB unnötig aufblàht.
Die CSV könnte ich temporàr nach lokal kopieren wobei das bei der jetzigen
zeilenweise Methode kaum eine Rolle spielt da der streamreader die Datei
eh komplett einliest.



Ich würde nach Möglichkeit die Anwendung von mdb auf mdf umstellen und dann
mit einem Bulk Insert die CSV-Datei in die mdf importieren. Im zweiten
Schritt würde ich das Update ausführen.

Viele Gruesse

Peter

Ähnliche fragen