Hallo,
ich greife unter VB via ADO auf eine Access Datenbank zu. Welches Format(JET Engine) vorliegt kann der Anwender bestimmen, beim erstellen der DB, welche auch unter VB erstellt wird.
Der Aufbau ist rel. simple gehalten.
'Tabelle FileData
'Felder
ID - Typ adInteger (Autoinkrement)
Rechner - Typ adVarWChar
File - Typ adVarWChar
Path - Typ adVarWChar
Size - Typ adInteger
Create - Typ adDate
Change - Typ adDate
Auf dem Rechner, läuft das Program nun und aller X Stunden durchsucht er definierte Ordner nach ihren Dateien. Ich bekomme sie jeweils in den Variablen
sRechner, sFile, sPath, sSize, sCreate und sChange zurueckgeliefert.
Nun sollen diese Dateien in die DB eingetragen werden! Aber nur wenn diese Daten noch nicht in der DB vorliegen oder wenn sich irgendein Wert geaendert hat. Hat sich ein Wert geaendert. Zum Bsp. sChange oder sSize so soll der alte Datensatz überschrieben werden!
Mein bisherige Idee ist folgende, aber sehr zeitaufwendig und sicher net elegant
Select \* From FileData Where Rechner Like '" & sRechner & "' and \_
File Like '" & sFile & ' and Path Like '" & sPath & "';"
Wenn ich mind. 1 Recordset bekomme, würde ich nun alle Daten vergleichen und wenn sich was geaendert hat, dann den Datensatz löschen und ihn wieder eintragen. Bekomme ich kein Recordset zurueck so gibt es den noch nicht und ich würde ihn eintragen. Aber bei ca. 50000 Files, die er finden wird, wird das ne ganze Menge Zeit in Anspruch nehmen! Von daher frage ich mal, ob es nicht eine elegantere Lösung gibt?
MfG Alex