Guten Morgen an alle
Meine Frage lautet wie kann ich doppelte Datensätze
aus der Atributtabelle entfernen.
gibt es dafür ein SQL Befehl oder eine andere
Möglichkeit es zu entfernen.
danke an alle vorab schonmal.
Meine Frage lautet wie kann ich doppelte Datensätze
aus der Atributtabelle entfernen.
gibt es dafür ein SQL Befehl oder eine andere
Möglichkeit es zu entfernen.
danke an alle vorab schonmal.
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Johannes Brinkmann am Di., 12.08.2003 - 16:13
Permalinkwir nutzen folgendes Skript, um alle doppelten Einträge in einer Tabelle hervorzuheben. Diese werden aber nicht gelöscht.
Tabelle muss ein aktives Feld haben.
theTabel = av.GetActiveDoc
theActiveField = theTabel.GetActiveField
IF (theActiveField = NIL) THEN
MsgBox.Info("Es muss ein Feld aktiv sein.", "Hinweis")
Return NIL
END
theVTab = theTabel.GetVTab
theNumOfRecs = theVTab.GetNumRecords
theBitmap = theVTab.GetSelection
theBitmap.ClearAll
theList = {}
FOR EACH i IN 1..theNumOfRecs
expr = "(["+theActiveField.AsString+"] = "+i.asString+")"
theVTab.Query(expr, theBitmap,#VTAB_SELTYPE_NEW)
theVTab.UpdateSelection
IF (theBitmap.Count > 1) THEN
FOR EACH rec IN theBitmap
theList.Add(rec.Clone)
END
END
END
theBitmap.ClearAll
FOR EACH i IN theList
theBitmap.Set(i)
END
Gruß
Johannes Brinkmann
Gespeichert von Jürgen Evert am Di., 12.08.2003 - 16:14
PermalinkDieses Beispielscript entfernt aus einer Attributtabelle alle Shapes die gleich sind. Andere Felder werden nicht geprüft. Bitte mit Sicherheitskopie arbeiten! Die Änderungen in der Tabelle werden nicht automatisch gespeichert.
Script bitte vom Tabellenfenster aus laufen lassen.
thetable=av.getactivedoc
thevtab=thetable.getvtab
thevtab.seteditable(true)
thevtab.getselection.clearall
Feld=thevtab.findfield("Shape")
for each rec in thevtab
Wert=thevtab.returnvalue(Feld,rec)
Anzahl=0
VtabClone=thevtab.clone
for each rec2 in VtabClone
Wert2=VtabClone.returnvalue(VtabClone.findfield("Shape"),rec2)
if(wert2=wert) then
Anzahl=Anzahl+1
if(Anzahl>1) then
thevtab.removerecord(rec2)
thevtab.flush
end
end
end
end