AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feld des Wertes Null (String)
Thema durchsuchen
Ansicht
Themen-Optionen

Feld des Wertes Null (String)

Ein Thema von Moin · begonnen am 24. Apr 2005 · letzter Beitrag vom 29. Apr 2005
Antwort Antwort
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#1

Feld des Wertes Null (String)

  Alt 24. Apr 2005, 13:17
Datenbank: MySQL • Zugriff über: TTable
Moin zusammen,

Ich habe ein Problem mit folgendem Quellcode

Delphi-Quellcode:
begin
     dbFach.Items.Clear;

    dbFach.Items.Add(tabS2.FieldValues['lk1']);
    dbFach.Items.Add(tabS2.FieldValues['lk2']);

    dbFach.Items.Add(tabS2.FieldValues['gk1']);
    dbFach.Items.Add(tabS2.FieldValues['gk2']);
    dbFach.Items.Add(tabS2.FieldValues['gk3']);
    dbFach.Items.Add(tabS2.FieldValues['gk4']);
    dbFach.Items.Add(tabS2.FieldValues['gk5']);
    If (tabS.FieldValues['gk6'] <> '') OR (Not tabS.FieldValues['gk6'].IsNull)
    Then dbFach.Items.Add(tabS2.FieldValues['gk6']);
    If (tabS.FieldValues['gk7'] <> '') OR (Not tabS.FieldValues['gk7'].IsNull)
    Then dbFach.Items.Add(tabS2.FieldValues['gk7']);
    If (tabS.FieldValues['gk8'] <> '') OR (Not tabS.FieldValues['gk8'].IsNull)
    Then dbFach.Items.Add(tabS2.FieldValues['gk8']);
    If (tabS.FieldValues['gk9'] <> '') OR (Not tabS.FieldValues['gk9'].IsNull)
    Then dbFach.Items.Add(tabS2.FieldValues['gk9']);
end;
Die Letzten Felder können nur Null sein! dbFach is ne DatenBankComboBox. Ich hab nicht so viel Erfahrung mit Leeren DB-Feldern.
Sieht jemand den Fehler?

Danke im Vorraus für Antworten!
~~ an alln ekn & endn sparn! ~~
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Feld des Wertes Null (String)

  Alt 24. Apr 2005, 13:18
Zitat:
Sieht jemand den Fehler?
welchen Fehler hast du denn??? Was soll der Quelltext machen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Feld des Wertes Null (String)

  Alt 24. Apr 2005, 13:29
Der Fehler
Meldung : "Ungültige Variant-Opperation"
Tritt auf, wenn ich einen Datensatz anwähle, der leere Felder besitzt (gk8, gk9).

Der Quelltext füllt eine Combobox mir den Werten der Felder in so fern die nicht leer sind.
Wenn man einen Datensatz auswählt, dann wird die table refresht, und der Quellcode dabei mit ausgeführt (AfterRefresh).
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#4

Re: Feld des Wertes Null (String)

  Alt 25. Apr 2005, 08:53
hallo Moin,

Du verwendest zwei Tabellen

Delphi-Quellcode:
    If (tabS.FieldValues['gk8'] <> '') OR (Not tabS.FieldValues['gk8'].IsNull)
    Then dbFach.Items.Add(tabS2.FieldValues['gk8']);
tabS und tabS2. Bei der Anfügeoperation würde ich auch auf IsNull testen.

Delphi-Quellcode:
    If (tabS.FieldValues['gk8'] <> '') OR (Not tabS.FieldValues['gk8'].IsNull)
    If (Not tabS2.FieldValues['gk8'].IsNull)Then //Nur anfügen, wenn nicht Null
    Then dbFach.Items.Add(tabS2.FieldValues['gk8']);

mfg

BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.011 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: Feld des Wertes Null (String)

  Alt 25. Apr 2005, 09:32
Moin Moin,

das hat nix mit der Datenbank zu tun, sondern damit, dass du versuchst, mit dem Ausdruck
if tabS.FieldValues['gk8'] <> '') einen Variant, der Null sein kann, mit einem String zu vergleichen, und dann scheppert's!

Besser wäre es so (Delphi überprüft standardmäßig boolsche Ausdrücke von links nach rechts und bricht ab, wenn er eindeutig ist):
Delphi-Quellcode:
begin
  dbFach.Items.Clear;

  dbFach.Items.Add(tabS2.FieldValues['lk1']);
  dbFach.Items.Add(tabS2.FieldValues['lk2']);

  dbFach.Items.Add(tabS2.FieldValues['gk1']);
  dbFach.Items.Add(tabS2.FieldValues['gk2']);
  dbFach.Items.Add(tabS2.FieldValues['gk3']);
  dbFach.Items.Add(tabS2.FieldValues['gk4']);
  dbFach.Items.Add(tabS2.FieldValues['gk5']);

  if not tabS.FieldValues['gk6'].IsNull and (tabS.FieldValues['gk6'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk6']);
  if not tabS.FieldValues['gk7'].IsNull and (tabS.FieldValues['gk7'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk7']);
  if not tabS.FieldValues['gk8'].IsNull and (tabS.FieldValues['gk8'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk8']);
  if not tabS.FieldValues['gk9'].IsNull and (tabS.FieldValues['gk9'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk9']);
end;
Somit, wird erst überprüft, ob das Feld Null ist. Wenn dies nicht so ist, wird überprüft, ob der String nicht leer ist.

MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Feld des Wertes Null (String)

  Alt 29. Apr 2005, 16:27
Hi nochmal,

Der Quelltext sieht jetzt so aus:
Delphi-Quellcode:
begin
     dbFach.Items.Clear;

    dbFach.Items.Add(tabS2.FieldValues['lk1']);
    dbFach.Items.Add(tabS2.FieldValues['lk2']);

    dbFach.Items.Add(tabS2.FieldValues['gk1']);
    dbFach.Items.Add(tabS2.FieldValues['gk2']);
    dbFach.Items.Add(tabS2.FieldValues['gk3']);
    dbFach.Items.Add(tabS2.FieldValues['gk4']);
    dbFach.Items.Add(tabS2.FieldValues['gk5']);

    if not tabS2.FieldValues['gk6'].IsNull and (tabS2.FieldValues['gk6'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk6']);
    if not tabS2.FieldValues['gk7'].IsNull and (tabS2.FieldValues['gk7'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk7']);
    if not tabS2.FieldValues['gk8'].IsNull and (tabS2.FieldValues['gk8'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk8']);
    if not tabS2.FieldValues['gk9'].IsNull and (tabS2.FieldValues['gk9'] <> '') then
    dbFach.Items.Add(tabS2.FieldValues['gk9']);
end;
Ich hatte mich verschrieben, Der Quelltext soll nur auf eine Tabelle zugreifen -> tabS2

Und die Bedingungen müssen natürlich mit AND verknüpft werden...

Aber es geht immer noch nicht
  Mit Zitat antworten Zitat
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Feld des Wertes Null (String)

  Alt 29. Apr 2005, 16:33
Ich hab das gefühl, dass
tabS2.FieldValues['gk6'].IsNull einfach nicht funzt.

Denn auch, wenn alle Felder ausgefüllt sind, tritt der Fehler auf

siehe fehler... (anhang)
Miniaturansicht angehängter Grafiken
error_665.gif  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Feld des Wertes Null (String)

  Alt 29. Apr 2005, 17:01
Sind alle Felder vom Typ String, dann geht auch das hier - Tippfehler vorbehalten:

Delphi-Quellcode:
var
  i: integer;
  f: TField;
begin
  // iAnfang und iEnde bitte passend wählen
  for i := iAnfang to iEnde do begin
    f := tabS2.Fields[i];
    if f.AsString <> 'then
      dbFach.Items.Add(f.AsString);
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Feld des Wertes Null (String)

  Alt 29. Apr 2005, 17:22
Dass is natürlich auch ne Möglichkeit ...

Es funzt jetzt super...

Du hast nur
dbFach.Items.Clear;
vergessen!

Aber Danke, du hast mir sehr geholfen
  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 16:33 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