Tables Liste leeren

Advantage Database Server

Moderator: Moderatoren

Tables Liste leeren

Beitragvon Manfred » Fr, 27. Mär 2015 15:11

kann man die in einem Rutsch leeren, oder muß man jede DBF (mühsam) einzeln entfernen?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon Jan » Fr, 27. Mär 2015 15:33

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11453
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Tables Liste leeren

Beitragvon nightcrawler » Mo, 30. Mär 2015 12:11

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
http://www.jd-engineering.de
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 239
Registriert: Di, 24. Apr 2012 15:33
Wohnort: 72181 Starzach

Re: Tables Liste leeren

Beitragvon Manfred » Mo, 30. Mär 2015 12:17

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon nightcrawler » Mi, 01. Apr 2015 11:49

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
http://www.jd-engineering.de
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 239
Registriert: Di, 24. Apr 2012 15:33
Wohnort: 72181 Starzach

Re: Tables Liste leeren

Beitragvon Manfred » Fr, 18. Mär 2016 9:19

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon UliTs » Fr, 18. Mär 2016 9:53

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
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: Tables Liste leeren

Beitragvon Manfred » Fr, 18. Mär 2016 9:57

delalldbf.JPG
delalldbf.JPG (53.04 KiB) 1481-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) 1481-mal betrachtet
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon UliTs » Fr, 18. Mär 2016 16:08

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
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: Tables Liste leeren

Beitragvon Manfred » Fr, 18. Mär 2016 16:12

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon UliTs » Fr, 18. Mär 2016 16:19

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: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: Tables Liste leeren

Beitragvon UliTs » Fr, 18. Mär 2016 16:20

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
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: Tables Liste leeren

Beitragvon Manfred » Fr, 18. Mär 2016 16:35

genau so aufrufen, wie Du es geschrieben hast? Hm, das klappt nicht. Muß da nicht noch was angegeben werden?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon UliTs » Fr, 18. Mär 2016 20:18

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
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: Tables Liste leeren

Beitragvon Manfred » Sa, 19. Mär 2016 7:43

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon UliTs » Sa, 19. Mär 2016 10:05

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
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: Tables Liste leeren

Beitragvon Manfred » Sa, 19. Mär 2016 10:52

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon UliTs » Sa, 19. Mär 2016 10:58

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
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2347
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: Tables Liste leeren

Beitragvon Manfred » Sa, 19. Mär 2016 11:00

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15847
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tables Liste leeren

Beitragvon nightcrawler » So, 20. Mär 2016 19:25

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
http://www.jd-engineering.de
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 239
Registriert: Di, 24. Apr 2012 15:33
Wohnort: 72181 Starzach


Zurück zu ADS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast