AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datensatz löschen wenn Felder leer (NULL) sind
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz löschen wenn Felder leer (NULL) sind

Ein Thema von ekatharina · begonnen am 6. Dez 2015 · letzter Beitrag vom 6. Dez 2015
Antwort Antwort
ekatharina

Registriert seit: 16. Dez 2012
21 Beiträge
 
#1

Datensatz löschen wenn Felder leer (NULL) sind

  Alt 6. Dez 2015, 16:01
Datenbank: Firebird • Version: 2.5 • Zugriff über: bde
Seit Tagen versuche ich per Delete Datensätze zu löschen. Sowie eines der Felder jedoch keinen Wert (also NULL) enthält scheitert die SQL.
... is null ... ... = NULL ...
Wo finde ich Hilfe zur Syntax?
Danke für jeden Hinweis.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Datensatz löschen wenn Felder leer (NULL) sind

  Alt 6. Dez 2015, 16:15
Hallo und willkommen in der DP.

Die BDE unterstützt Standard-SQL.

So aus der Erinnerung: "delete from TABLE where FIELD is null"

Ich hoffe, das stimmt so (ist länger her bei mir).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#3

AW: Datensatz löschen wenn Felder leer (NULL) sind

  Alt 6. Dez 2015, 16:17
Allgemein findest Du das direkt in der Firebirddokumentation.
Poste doch mal Deinen Tabellenaufbau und erkläre, was Du löschen möchtest, dann können wir versuchen, Dir einen Schubs in die richtige Richtung zu geben.
Thomas Breitkreuz
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: Datensatz löschen wenn Felder leer (NULL) sind

  Alt 6. Dez 2015, 16:39
Was bedeutet denn "scheitert"?
Gibt es einen Fehler? Welchen? Oder wird einfach nicht gelöscht?
Sowohl Firebird als auch die BDE gehorchen auf "<feldname> is NULL". In einer Löschanweisung -du sprichst von "eines der Felder jedoch keinen Wert"- muss das Löschkriterium dann ggF. mit "or <feldname> is null" kombiniert werden. Bei 2 Kriterienfeldern dann bspw.:
Code:
delete from <tabelle>
 where (a_id = :param1 and b_id = :param2)
    or (a_id is null and b_id = :param2)
    or (a_id = :param1 and b_id is null)
   [or (a_id is null and b_id is null)]*
* damit werden u.U. sehr viele Datensätze gelöscht, kommt drauf an, ob das gewollt ist.

Gibt es noch mehr delete Kriterien, die Null sein können, erweitern sich die Kombinationen entsprechend.

BDE selbst arbeitet mit "Local SQL", siehe z.B. hier http://www.jpmartel.com/bu02lsql.htm#6.3%20Local)
Firebird findest Du hier: http://www.firebirdsql.org/en/reference-manuals/
Gruß, Jo
  Mit Zitat antworten Zitat
ekatharina

Registriert seit: 16. Dez 2012
21 Beiträge
 
#5

AW: Datensatz löschen wenn Felder leer (NULL) sind

  Alt 6. Dez 2015, 19:41
Da staune ich nicht schlecht: Habe sicherlich auf Euren Seiten schon hunderte Mal reingeschaut aber noch nie etwas nachgefragt. Und nun am Sonntag-Nachmittag gleich drei Antworten.
[Feld] is null war schon die Lösung.
Ich hatte
[Feld] = is null eingegeben.

Vielen Dank und noch 'nen schönen Nikolaus-Abend
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Datensatz löschen wenn Felder leer (NULL) sind

  Alt 6. Dez 2015, 19:59
Prima, dann die obligatorische Warnung heute mal am Schluss- anscheinend nuckeln alle noch an Ihrer Schokolade:
BDE so schnell wie möglich austauschen. Taugt höchstens noch zum Basteln.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 20:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz