Tables Liste leeren

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Tables Liste leeren

Beitrag von Manfred »

kann man die in einem Rutsch leeren, oder muß man jede DBF (mühsam) einzeln entfernen?
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!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von Jan »

Nachdem ich mich da auch lange mit mit rumgeärgert habe ist der für mich schnellste Weg: DD löschen, die drei DD-Dateien löschen, und alles neu aufbauen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
nightcrawler
1000 working lines a day
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: Tables Liste leeren

Beitrag von nightcrawler »

Code: Alles auswählen


declare @tables cursor as select name from system.tables;
open @tables;
while fetch @tables do
  try 
    execute immediate 'drop table ['+trim(@tables.name)+']';
end while;
close @tables;

--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

Hi Joachim,

Es ging mir nur darum, ob es die Möglichkeit im ARC gibt mehrere DBF zu kennzeichnen und dann alle auf einmal zu entfernen. So mal eben schnell.
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!!
Benutzeravatar
nightcrawler
1000 working lines a day
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: Tables Liste leeren

Beitrag von nightcrawler »

Manfred hat geschrieben:Hi Joachim,

Es ging mir nur darum, ob es die Möglichkeit im ARC gibt mehrere DBF zu kennzeichnen und dann alle auf einmal zu entfernen. So mal eben schnell.
Leider nicht - und ich habe auch nicht mehr den gesamten Quellcode und eine entsprechend eingerichtete Delphi-Version, dass ich es schnell nachrüsten könnte.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

derzeit ist mir das Problem gerade wieder auf den Tisch gekommen. Also habe ich mal Deinen CODE Vorschlag ausprobiert. Oder zumindest dachte ich ihn auszuprobieren. Ich vermute einmal, ich muß es im ARC unter Functions eingeben!? Dort gibt es aber Fehlermeldungen damit. Bin ich überhaupt auf dem richtigen Weg?
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!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von UliTs »

Manfred,

ich vermute, Du hast ein Data Dictionary? Dann kannst Du darin eine Funktion schreiben, die Tabellen daraus löscht.
Zeig mal den Code wie Du die Funktion versucht hast zu schreiben.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

delalldbf.JPG
delalldbf.JPG (53.04 KiB) 10892 mal betrachtet
ist das so richtig?
Sobald ich OK oder Debug/test drücke kommt das hier
delalldbf_error.JPG
delalldbf_error.JPG (68.27 KiB) 10892 mal betrachtet
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!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von UliTs »

Du machst ein "try", aber es fehlt das "end try" :D .

Versuch mal

Code: Alles auswählen

...
try execute ...; catch all end try;
...
Klappt es dann?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

hm,

ich habe nur das gemacht, was Joachim geschrieben hat. Aber zumindest gibt es mit Deinem Vorschlag keine Fehlermeldung mehr. Allerdings habe ich keine Ahnung, wie ich das Teil jetzt lostreten kann, das es die Tables entfernt?
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!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von UliTs »

Du kannst es ja mal aufrufen :-) .
Z.B. durch

Code: Alles auswählen

select DelAlleDbf() Ergebnis from system.dictionary
Edit: datadictionary -> dictionary
Zuletzt geändert von UliTs am Fr, 18. Mär 2016 20:17, insgesamt 2-mal geändert.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von UliTs »

Manfred hat geschrieben:...
ich habe nur das gemacht, was Joachim geschrieben hat.
...
Ja, auch Genies können Fehler machen :D .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

genau so aufrufen, wie Du es geschrieben hast? Hm, das klappt nicht. Muß da nicht noch was angegeben werden?
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!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von UliTs »

Manfred,

habe oben meinen Fehler korrigiert. So etwas darfst Du aber natürlich auch in der Hilfe nachschauen :wink: .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

MIst, das hat wohl doch geklappt, aber der Architekt macht keinen Refresh darauf. Als ich gerade neu startete, waren alle DBF weg. Manmanman, wieder auf das Teil reingefallen.
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!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von UliTs »

Dafür gibt es den "Refresh"-Knopf :D .
Aber Du hast natürlich recht: so etwas könnte automatisch geschehen. In vielen solchen Kleinigkeiten hat der ARC so einige Fallen. Im Zweifel lohnt es sich immer, sich ab- und neu anzumelden.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

Hm, welchen Refreshknopf meinst Du? Wenn ich STRG-R oder F5 drücke, die allgemein gebräuchlichen Varianten, passiert da man gar nichts, bzw. öffnet sich ein anderes Fenster. Abmelden und anmelden hilft, kann aber nicht das große Glück bedeuten.
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!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Tables Liste leeren

Beitrag von UliTs »

Ich meinte den Refreshknopf im Browser, wenn eine Tabelle geöffnet ist. Aber in diesem Fall hast Du ja Tabellen aus dem DD gelöscht und das geht natürlich nicht bei einer geöffneten Tabelle. Da hilft nur DD schließen und neu öffnen 8) .

Aber über solche "Kleinigkeiten" darfst Du Dich nicht aufregen, sonst wirst Du nicht glücklich mit dem ARC (Data Architect).

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tables Liste leeren

Beitrag von Manfred »

das stimmt, immer cool bleiben. Solange man genau weiß, was man macht und was es bringen soll geht es noch. Da ich aber noch Neuling auf dem Gebiet bin, verläßt man sich schonmal gerne auf das angezeigte Ergebnis. Ich werde mal versuchen in Zukunft daran zu denken, wenn es nicht so wird, wie erwartet einfach mal an und abmelden....
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!!
Benutzeravatar
nightcrawler
1000 working lines a day
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: Tables Liste leeren

Beitrag von nightcrawler »

Hallo Manfred,
ich würde sowas nicht in eine FUNCTION packen, sondern in eine STORED PROCEDURE. Führe folgendes in einem SQL Fenster aus, dann hast Du diese Stored Proc:

Code: Alles auswählen

CREATE PROCEDURE DeleteAllTables(tablename CICHAR(255) OUTPUT, success LOGICAL OUTPUT)
BEGIN
  declare @tables cursor as select name from system.tables;
  open @tables;
  while fetch @tables do
    try
      execute immediate 'drop table ['+trim(@tables.name)+']';
      INSERT INTO __output(tablename, success) VALUES(trim(@tables.name), True);
    catch all
      INSERT INTO __output(tablename, success) VALUES(trim(@tables.name), False);
    end try;
  end while;
  close @tables;
END;
Einmal erstellt kannst Du es dann immer über SQL ausführen:

Code: Alles auswählen

EXECUTE PROCEDURE DeleteAllTables();
In der Ergebnismenge stehen dann alle Tabellen des Dictionary und ob sie gelöscht werden konnten oder nicht.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten