AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken IBDAC: In der DB sind Leerstrings statt Null. Alternativen?
Thema durchsuchen
Ansicht
Themen-Optionen

IBDAC: In der DB sind Leerstrings statt Null. Alternativen?

Ein Thema von BlueStarHH · begonnen am 14. Okt 2010 · letzter Beitrag vom 7. Okt 2019
Antwort Antwort
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: IBDAC Leerstring statt Null. Alternativen?

  Alt 12. Sep 2019, 15:29
Guten Tag,

Ich stehe gerade vor dem selben Dilemma. Ich möchte keine Leerstrings in meiner DB. Entweder hat ein Feld ein Zeichen, was kein Leerzeichen ist, oder es ist auf Null gesetzt.

Ist es möglich im BeforPost die Leerstrings zu ersetzen ?
Es wir ja das DataSet mitgegeben ist es nicht möglich die Leerstrings mit Null zu ersetzen?

Freundliche Grüsse
Int3g3r

Geändert von Int3g3r (12. Sep 2019 um 15:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.599 Beiträge
 
Delphi 12 Athens
 
#2

AW: IBDAC Leerstring statt Null. Alternativen?

  Alt 12. Sep 2019, 15:52
Betrifft das auch IBDAC? Ich frage nur, weil FireDAC eine Option StrsEmpty2Null hat, die vermutlich genau diesen Effekt aktiviert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: IBDAC Leerstring statt Null. Alternativen?

  Alt 12. Sep 2019, 16:06
Betrifft das auch IBDAC? Ich frage nur, weil FireDAC eine Option StrsEmpty2Null hat, die vermutlich genau diesen Effekt aktiviert.
Ja, leider. Ich muss dazu aber sagen das ich nicht die neuste version von IBDAC benutze.


EDIT: Hab hier ne mögliche Lösung. Also bei mir Funktionierts.

Delphi-Quellcode:
procedure Tdm.qryTestBeforePost(DataSet: TDataSet);
var
   i: Integer;
begin
   for i := 0 to DataSet.FieldCount-1 do
   begin
      if (DataSet.FieldByName(DataSet.FieldList[i].DisplayName).ReadOnly) or
          (DataSet.FieldByName(DataSet.FieldList[i].DisplayName).IsNull) then
            Continue;

      if trim(DataSet.FieldByName(DataSet.FieldList[i].DisplayName).AsString) = 'then
            DataSet.FieldByName(DataSet.FieldList[i].DisplayName).Clear;
   end;
end;
end;

Geändert von Int3g3r (12. Sep 2019 um 16:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.599 Beiträge
 
Delphi 12 Athens
 
#4

AW: IBDAC Leerstring statt Null. Alternativen?

  Alt 12. Sep 2019, 16:19
Du solltest zum Einen überprüfen, ob du das Feld überhaupt beschreiben darfst, und zum Anderen, ob es nicht schon NULL ist. Auch ein NULL-Wert liefert einen Leerstring bei AsString.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: IBDAC Leerstring statt Null. Alternativen?

  Alt 12. Sep 2019, 16:30
Du solltest zum Einen überprüfen, ob du das Feld überhaupt beschreiben darfst, und zum Anderen, ob es nicht schon NULL ist. Auch ein NULL-Wert liefert einen Leerstring bei AsString.
Ahh, sehr gute Überlegung. Besten Dank an das hätte ich nicht gedacht!
Das hätte irgendwann ne Exception gegeben.
Wurde nun angepasst!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.867 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: IBDAC Leerstring statt Null. Alternativen?

  Alt 12. Sep 2019, 16:32
Alternativ könntre man dies auch mit einem Trigger lösen; wäre dann unabhängig von den Komponenten/Programm.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.599 Beiträge
 
Delphi 12 Athens
 
#7

AW: IBDAC Leerstring statt Null. Alternativen?

  Alt 12. Sep 2019, 16:36
Statt TrimRight(TrimLeft(... kannst du dich auch gleich Trim(... schreiben, oder?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 01:03 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