AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Prüfen ob Spalte eines DBGrid leer ist
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob Spalte eines DBGrid leer ist

Ein Thema von Nico B. · begonnen am 6. Mär 2014 · letzter Beitrag vom 6. Mär 2014
Antwort Antwort
Seite 1 von 2  1 2      
Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#1

Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 11:47
Datenbank: MS SQL • Version: 2005 • Zugriff über: ADO
Hallo zusammen,

ich habe nur ne ganz kurze Frage zu der ich leider keine Antwort finde.

Gibt es eine Möglichkeit zu prüfen, ob eine Spalte eines DBGrid ausschließlich NULL-Werte enthält?

Mit DBGrid.Fields[xy].IsNull kann ich prüfen, ob der aktuell ausgewählte Datensatz in der Spalte xy NULL ist. Daraus könnte ich auch eine Schleife für die gesamte Spalte bauen, aber lieber wäre mir, ich könnte das mit einem Befehl erledigen.

Nico
Nico Bäger
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 11:50
Überprüfe besser das dahinterliegende DataSet
Markus Kinzler
  Mit Zitat antworten Zitat
Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#3

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 11:58
Hallo mkinzler,

das kann ich auch machen.
Aber auch hierfür kenne ich keinen Befehl mit dem ich die ganze Spalte prüfen kann.

Nico
Nico Bäger
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 12:00
Ich würde einen SQL-Befehl an die Datenbank schicken.

Code:
Select Count(*) from TABELLE where FELD is null
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 12:08
Man könnte es auch mit sortieren versuchen.
nach einen
Code:
order by feldname
befinden sich die NULL-Inhalte am Ende.

Interessanter wäre allerdings zu wissen wofür das gut sein soll. Ggf. kann man das Problem ja auch mit einer Abfrage erschlagen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#6

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 12:11
Okay, dann erzähle ich vielleicht doch etwas mehr zu meinem Problem...

Ich habe eine SQL Abfrage mit der ich mehrere Spalten abfrage.
Code:
SELECT Spalte1, Spalte2, Spalte3, Spalte4 FROM Tabelle
Diese Abfrage möchte ich immer wieder gleich verwenden.
Nun kommt es aber vor, dass bspw. in Spalte 3 in keinem der gefundenen Datensätze ein Wert steht, sondern überall NULL. Wenn dem so ist, möchte ich die Spalte 3 nicht sehen.

Mein Plan war, diese Spalte dann unsichtbar zu machen.
Code:
if DBGrid.Fields['Spalte3'].IsNull
  then
    DBGrid.Columns['Spalte3'].Visible:=false
  else
    DBGrid.Columns['Spalte3'].Visible:=true
Nur leider prüft IsNull nur den Wert des aktuellen Datensatzes in der Spalte. Daher suche ich eine andere Möglichkeit...
Nico Bäger
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.539 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 12:14
Wieso nicht so wie baumina vorgeschlagen hat, allerdings mit einem NOT dazwischen?
SQL-Code:
SELECT
  COUNT(*)
FROM
  Tabelle
WHERE
  Feld IS NOT NULL
Kommt dabei etwas anderes als 0 zurück, enthält das Feld nicht ausschließlich NULL-Werte. Und ja, das wäre dann halt eine solche Abfrage je Spalte, aber ich wüsste nicht, wie man das großartig anders machen sollte.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#8

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 12:20
Das Problem bei der Lösung ist, dass ich dann alle Datensätze, die keinen Wert in der Spalte3 haben, nicht mehr angezeigt bekomme. Ich möchte aber weiterhin alle Datensätze angezeigt bekommen nur eben die Spalte 3 nicht mehr.
Nico Bäger
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.539 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 12:27
Du sollst die Abfrage ja auch losgelöst vor der eigentlichen Datenabfrage losschicken. Anhand der zurückgegebenen Anzahl kannst Du dann entscheiden, ob die Spalte angezeigt werden soll oder nicht. Übrigens kannst Du Dir auch ein Statement bauen, das gleich die entsprechende Anzahl je Spalte ermittelt, dann geht das nur einmal übers Netz.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Nico B.

Registriert seit: 16. Okt 2006
Ort: Riesa
67 Beiträge
 
Delphi XE7 Enterprise
 
#10

AW: Prüfen ob Spalte eines DBGrid leer ist

  Alt 6. Mär 2014, 12:32
Mhm, okay, wie könnte dieses Statement für meinen vereinfachten Fall den aussehen?
Nico Bäger
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:12 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