Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Befehl überprüfung auf leer (https://www.delphipraxis.net/45222-sql-befehl-ueberpruefung-auf-leer.html)

Tigermoon 2. Mai 2005 12:24

Datenbank: MySQL • Version: ? • Zugriff über: normal eben

SQL Befehl überprüfung auf leer
 
Hallo

Gibt es einen Weg eine Abfrage auf 'leer' in einem sql-befehl (insert / update) zu machen,
dass wenn nichts eingegeben wurde der Wert auf 'NULL' gesetzt wird.

die werte werden aus einem eingabefeld ausgelesen
daher sind die werte ja standartmässig für sql '' und können niemals NULL sein

gibt es da eine funktion (oder sowas) die ich im sql insert / update befehl einfügen kann?

ich möchte keine if abfragem machen
das wäre zu einfach *g*

Steffi

Waldteufel 2. Mai 2005 12:41

Re: SQL Befehl überprüfung auf leer
 
Hi.

So?

SQL-Code:
UPDATE tabelle SET feld = NULL WHERE feld = ''

Tigermoon 2. Mai 2005 12:44

Re: SQL Befehl überprüfung auf leer
 
dann muss ich ja trotzdem zwei abfragen machen

geht das nicht in einer abfrage
also während ich den insert oder update befaehl mache?

weil ich weiß ja vorher nicht welches feld nachher leer sein wird (welches feld der benutzer leer läßt)

shmia 2. Mai 2005 12:45

Re: SQL Befehl überprüfung auf leer
 
SQL-Code:
UPDATE tabelle4711 SET Ansprechpartner=NULL WHERE Ansprechpartner=''
Obige SQL-Anweisung setzt das Feld Ansprechpartner auf NULL, wenn es einen leeren String enthält.
Man kann immer nur ein Feld auf diese Art updaten.

Du kannst aber auch schon beim Editieren dafür sorgen, dass leere Felder als NULL-Werte gespeichert werden.
Im Event BeforePost rufst du einfach folgende Procedure auf:
Delphi-Quellcode:
procedure ClearEmptyStringFields(fields:TFields);
var
   i : Integer;
   f : TField;
begin
   for i:=0 to fields.Count-1 do
   begin
      f := fields[i];

      if (f.DataType in [ftString, ftWideString]) and (f.Required=False) and (f.AsString='') then
         f.Clear;  // Set Field to NULL
   end;
end;

procedure ......BeforePost(dataset:TDataset);
begin
   ClearEmptyStringFields(dataset.fields);
end;

Tigermoon 2. Mai 2005 12:52

Re: SQL Befehl überprüfung auf leer
 
danke

hatte mir schon fast gedacht das es da keinen sql befehl gibt
wäre ja mal wieder zu einfach gewesen

Steffi

franktron 2. Mai 2005 13:00

Re: SQL Befehl überprüfung auf leer
 
Wie schreibst du den die Wert in die SQL ????


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 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