AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Löschen großer Datenbanken

Löschen großer Datenbanken

Ein Thema von bernhard_LA · begonnen am 25. Apr 2016 · letzter Beitrag vom 26. Apr 2016
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

Löschen großer Datenbanken

  Alt 25. Apr 2016, 17:34
Datenbank: MSSQL • Version: ADO • Zugriff über: 12
mit diesem Code
Delphi-Quellcode:
    with MyQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('delete from ');
      SQL.Add(TableName);
      TADODataSet(MyQuery).CommandTimeout := TimeOut;
      ExecSQL;
      result := true;
    end;
  except
    result := false;
  end;

komme ich bei großen Datenbanken nicht immer zum Erfolg. Gibt es eine Lösung in n-Abfragen immer nur einen kleinern Teil zu löschen, geht vielleicht sogar dann insgesamt schneller ?
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Löschen großer Datenbanken

  Alt 25. Apr 2016, 17:40
Stored Proc ?
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Löschen großer Datenbanken

  Alt 25. Apr 2016, 17:47
Wenn du eine Datenbank löschen willst, kannst du das mit drop database machen. Wenn du dagegen Tabellen in einer Datenbank löschen willst, solltest du die Überschrift anpassen.
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#4

AW: Löschen großer Datenbanken

  Alt 25. Apr 2016, 18:05
beim MS SQL kannst du die Tabellen - ohne Prüfungen - mit TRUNCATE löschen
https://msdn.microsoft.com/de-de/lib...=sql.120).aspx
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.316 Beiträge
 
Delphi 12 Athens
 
#5

AW: Löschen großer Datenbanken

  Alt 25. Apr 2016, 18:22
Zitat:
Löschen großer Datenbanken Tabellen
Trigger, Indize usw. deaktivieren?

Parameter?
https://xkcd.com/327/
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (25. Apr 2016 um 18:28 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Löschen großer Datenbanken

  Alt 25. Apr 2016, 18:43
Definiere bitte, was Du unter dem Löschen einer Datenbank verstehst.

Die Datenbank löschen - also alles: drop database

Tabellen löschen: drop table

Inhalte von Tabellen löschen: delete from tabelle

Inhalte von Tabellen unwiderruflich löschen: truncate table

Bei Delete werden die Löschungen erstmal ins Rollbacksegment geschrieben, da die Datenbank ja nicht weiß, ob am Ende statt des Commit doch ein Rollback kommen könnte.

Truncate macht das nicht: Was weg ist ist weg.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.387 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Löschen großer Datenbanken

  Alt 26. Apr 2016, 09:36
mit diesem Code
Delphi-Quellcode:
 ....
  except
    result := false;
  end;


als erste Aktion würde ich den leere Except-Block aufbohren und die auftretende Fehlermeldung zumindest loggen, damit ich dann im Fehlerfall wenigstens weiß warum das Löschen nicht geklappt hat (ForeignKey, Rechte, ....) um mich dann um das eigentliche Problem zu kümmern...
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz