ADS und Index löschen
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
ADS und Index löschen
Ohne den ADS mache ich es immer folgendermaßen:
DBF öffnen
Index öffnen und kompletten Aufbau mit Vorgabe vergleichen um festzustellen, ob sich was geändert hat im Schlüssel usw.
Wenn sich was geändert hat, dann wird die DBF wieder geschlossen, der Index gelöscht und dann automatisch neuerstellt. Somit ist alles erschlagen.
Jetzt muß ich aber eine Routine entwickeln, die das unter ADS löst. Löschen des Index als Datei geht ja nicht. Also muß ich die Tabelle nebst Index öffnen und dann dem ADS sagen, lösche mal fix den Index, damit er neu erstellt werden kann. Im Architekten ist mir aufgefallen, dass man alle TAGS einzeln löschen muß um dann durch die Löschung des letzten TAGS den Index komplett zu entfernen. Wie bringe ich dem ADS das per SQL bei und wie löst man sowas generell elegant?
DBF öffnen
Index öffnen und kompletten Aufbau mit Vorgabe vergleichen um festzustellen, ob sich was geändert hat im Schlüssel usw.
Wenn sich was geändert hat, dann wird die DBF wieder geschlossen, der Index gelöscht und dann automatisch neuerstellt. Somit ist alles erschlagen.
Jetzt muß ich aber eine Routine entwickeln, die das unter ADS löst. Löschen des Index als Datei geht ja nicht. Also muß ich die Tabelle nebst Index öffnen und dann dem ADS sagen, lösche mal fix den Index, damit er neu erstellt werden kann. Im Architekten ist mir aufgefallen, dass man alle TAGS einzeln löschen muß um dann durch die Löschung des letzten TAGS den Index komplett zu entfernen. Wie bringe ich dem ADS das per SQL bei und wie löst man sowas generell elegant?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: ADS und Index löschen
Manfred,
es steht ja auch in diesem zusammenhang noch das Problem im Raum, das Du es entgegen allen gegenteiligen Vermutungen und Aussagen es unter FOXCDX schaffst, auf eine shared auch von andeern Nutzern geöffneten dbf einen neuen Tag erstellen kannst. Was aber unter ADS eben nicht mehr funktioniert - also eher so wie man das normalerweise erwarten würde.
Jan
es steht ja auch in diesem zusammenhang noch das Problem im Raum, das Du es entgegen allen gegenteiligen Vermutungen und Aussagen es unter FOXCDX schaffst, auf eine shared auch von andeern Nutzern geöffneten dbf einen neuen Tag erstellen kannst. Was aber unter ADS eben nicht mehr funktioniert - also eher so wie man das normalerweise erwarten würde.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: ADS und Index löschen
Nun, das würde natürlich nicht klappen in meinem System, weil die Indexdatei ja vorher gelöscht werden müßte. Aber einen zusätzlichen index aufbauen zu einer geöffneten Datei, den ich dann nur alleine benutze, das klappt auf jeden Fall. Sonst hätte es ja schon längst mal geknallt im System..
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- nightcrawler
- 1000 working lines a day
- Beiträge: 650
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: ADS und Index löschen
Die Lösung ist - wie fast immer mit Data Dictionary - SQL: https://www.jd-engineering.de/drop-all- ... ven-table/
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: ADS und Index löschen
HI Joachim,
sorry, wenn ich jetzt ein wenig dumm frage: Ich wollte das aus Xbase++ heraus machen und dachte da gibt es einen SQL Befehl für. Was weiß ich sowas wie Delete TAG from indexname oder so ähnlich. Das vielleicht in einer Schleife für alle Tags. Die kann ich ja ermitteln und dann nach und nach löschen.
sorry, wenn ich jetzt ein wenig dumm frage: Ich wollte das aus Xbase++ heraus machen und dachte da gibt es einen SQL Befehl für. Was weiß ich sowas wie Delete TAG from indexname oder so ähnlich. Das vielleicht in einer Schleife für alle Tags. Die kann ich ja ermitteln und dann nach und nach löschen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- nightcrawler
- 1000 working lines a day
- Beiträge: 650
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: ADS und Index löschen
Hallo Manfred,
der Befehl ist im Skript versteckt:Manfred hat geschrieben:Ich wollte das aus Xbase++ heraus machen und dachte da gibt es einen SQL Befehl für. Was weiß ich sowas wie Delete TAG from indexname oder so ähnlich. Das vielleicht in einer Schleife für alle Tags. Die kann ich ja ermitteln und dann nach und nach löschen.
Code: Alles auswählen
DROP INDEX [tabelle].[tagname]
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: ADS und Index löschen
ah, dachte ich es mir.
Aber mir fällt noch was ein. Kann man nicht auch den einzelnen Indextag modifizieren, so wie man auch die Struktur der Tabelle modifizieren kann? Oder wäre es dann sinnvoll zu ermitteln, welche(r) Tag(s) angepasst werden müßten und dann nur die einzelnen Tags löschen um sie dann wieder mit neuem Inhalt hinzuzufügen?
Aber mir fällt noch was ein. Kann man nicht auch den einzelnen Indextag modifizieren, so wie man auch die Struktur der Tabelle modifizieren kann? Oder wäre es dann sinnvoll zu ermitteln, welche(r) Tag(s) angepasst werden müßten und dann nur die einzelnen Tags löschen um sie dann wieder mit neuem Inhalt hinzuzufügen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- nightcrawler
- 1000 working lines a day
- Beiträge: 650
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: ADS und Index löschen
Leider erlaubt die System Prozedur sp_ModifyIndexProperty als zu änderte Eigenschaft nur COMMENT. Wenn sich also die Definition für einen Index Tag ändert, muss dieser gelöscht und neu erstellt werden. Das Erstellen geht übrigens auch mit der Option ONLINE und damit on-the-fly im Hintergrund, selbst wenn die Tabelle durch andere Benutzer in Gebrauch ist.