AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi QUERY - Spalte einer Tabelle leer?
Thema durchsuchen
Ansicht
Themen-Optionen

QUERY - Spalte einer Tabelle leer?

Ein Thema von trialfreak · begonnen am 11. Jan 2004 · letzter Beitrag vom 15. Jan 2004
Antwort Antwort
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#1

QUERY - Spalte einer Tabelle leer?

  Alt 11. Jan 2004, 16:59
Hallo,
angenommen ich habe eine Tabelle mit 3 Spalten:

Wie kann ich möglichst einfach feststellen ob eine gesamte Spalte der Tabelle leer ist (WERT NIL bzw. NULL)?

Über Hilfe würde ich mich freuen

Ciao,
Christian
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: QUERY - Spalte einer Tabelle leer?

  Alt 11. Jan 2004, 17:45
Hallo trialfreak,

probiere es mal so:
SQL-Code:
SELECT *
FROM Customer
WHERE (InvoiceDate IS NULL);
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#3

Re: QUERY - Spalte einer Tabelle leer?

  Alt 11. Jan 2004, 17:52
Hallo,
danke für Deine Antwort

Habe leider vergessen zu erwähnen, dass mit Tabelle die Rückgabe eines komplexeren Queries gemeint ist, welches mit Hilfe temporärer Tabellen das Fehlen von "SubSelects" unter mySQL ausmerzen soll.
Die Ergebnisse werden also zunächst in eine temporäre Tabelle geschrieben, die dann ganz normal mit SELECT * from temp_table ausgelesen wird.

Die Rückgabe des Queries könnte dann z.B. so aussehen (Werte sind nur zur Veranschaulichung):

SPALTE1 - SPALTE2 - SPALTE3
dsfsdfs - ewrewrw - jhjf
ffdfeee - ewewewe -
dsfwe - weewe - dfd

oder so:

SPALTE1 - SPALTE2 - SPALTE3
dsdsads - asdasda -
asdasdd - sddeeff -

(Blöde Darstellung, sorry)

Ich möchte nun unter Delphi gucken, ob die gesamte 3. Spalte der Ergebnismenge leer ist.

Falls ich mich blöd ausgedrückt habe, kann ich das gerne nochmal näher erläutern...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: QUERY - Spalte einer Tabelle leer?

  Alt 11. Jan 2004, 18:00
SQL-Code:
SELECT Count(*)
FROM Tabelle
WHERE (...Deine Where-Clause) AND
       Spalte is not null
Bekommst du 0 als Ergebnis ist die Spalte leer.
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#5

Re: QUERY - Spalte einer Tabelle leer?

  Alt 11. Jan 2004, 18:14
Hallo,
nach Möglichkeit möchte ich für diese Aufgabe keinen neuen Query stellen.

Kann man da nicht analog was zu query.fieldvalues['NameDesEinzelfeldes'] oder so machen, ohne eine neue Anfrage an den Server stellen zu müssen?
Die Ergebnismenge ist ja schon im Rechner...
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#6

Re: QUERY - Spalte einer Tabelle leer?

  Alt 11. Jan 2004, 18:35
Zitat von trialfreak:
Die Ergebnismenge ist ja schon im Rechner...
Nicht notwendigerweise. Bei großen Antwortmengen werden zunächst erst Teilmengen an den Client geschickt. Erst wenn dan weitere Daten benötigt werden, werden diese angefordert. Dir bleibt wohl nur übrig, Zeile für Zeile durch die Antwortmenge zu gehen und für das gewünscht Feld (TField) mit der Methode IsNull den Inhalt zu überprüfen.
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#7

Re: QUERY - Spalte einer Tabelle leer?

  Alt 11. Jan 2004, 19:15
Hallo,
ich denke auch dass dies dann die einzige Möglichkeit sein wird.

Die Ergebnismenge an sich ist maximal nur 10 Datensätze groß, da es um statistische Zusammenfassungen geht.

Trotzdem Danke für eure Anregungen - echt super hier...
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#8

Re: QUERY - Spalte einer Tabelle leer?

  Alt 15. Jan 2004, 12:31
So, vielleicht braucht es ja noch jemand anderes, hier ist die Prozedur die ich mir geschrieben habe

Delphi-Quellcode:
function spalteempty (query : TQuery; spalte : string) : boolean;
begin
  Result := true;
  query.First;
  if not (query.FieldByName(spalte).AsString='') then Result := false;
  repeat
    begin
      query.Next;
      if not (query.FieldByName(spalte).AsString='') then Result := false;
    end;
  until query.Eof;
end;
Ist die Spalte leer ist der Rückgabewert true, ansonsten false...
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9

Re: QUERY - Spalte einer Tabelle leer?

  Alt 15. Jan 2004, 12:38
Warum nicht so?
if not query.FieldByName(spalte).IsNull then Result := false; Und warum schreibst Du die if-Abfrage zweimal in Deinen Code?
  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:00 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