Ich habe in einer Datei ein Schlüsselfeld (Artikelnummer); d.h. ein Eintrag in diesem Feld darf nicht doppelt vorkommen.
Folgende große Hilfe dazu habe ich von RGH erhalten:
++++++++++++++++++++++++++++++++++++++++++++++
If @dbFind(NeuerEintrag$,1)
<Fehlermeldung produzieren>
Else
<Datensatz hinzufügen>
EndIf
Da der Index genutzt wird, ist es
sehr schnell. Wichtig ist die 1 als
zweiter Parameter, da dann auf exakte
Übereinstimmung geprüft wird (siehe Hilfe).
++++++++++++++++++++++++++++++++++++++++++++++
Ein kleines Problemchen habe ich aber:
Wenn ich das "Schlüsselfeld" ändere oder einen neuen Datensatz hinzufüge, wird der Index mit geändert - automatisch.
Wenn ich allerdings den aktuellen Datensatz lösche mit
dbDelete()
dbPack()
dann ist das Schlüsselfeld des gelöschten Datensatzes noch immer im Index vorhanden. Nach dem Löschen eines Datensatzes muß ich die ganze Datei reindizieren:
dbCreateIndex "NR" > "iNR"
dbIndex("iNR")
Muß das so sein oder mache ich etwas falsch. Schön wäre es, wenn nach dbDelete() der Index schon aktualisiert werden würde.
Danke und beste Grüße
|