![]() |
Datenbank: MS SQL • Version: 2005 • Zugriff über: ADO
Prüfen ob Spalte eines DBGrid leer ist
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 |
AW: Prüfen ob Spalte eines DBGrid leer ist
Überprüfe besser das dahinterliegende DataSet
|
AW: Prüfen ob Spalte eines DBGrid leer ist
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 |
AW: Prüfen ob Spalte eines DBGrid leer ist
Ich würde einen SQL-Befehl an die Datenbank schicken.
Code:
Select Count(*) from TABELLE where FELD is null
|
AW: Prüfen ob Spalte eines DBGrid leer ist
Man könnte es auch mit sortieren versuchen.
nach einen
Code:
befinden sich die NULL-Inhalte am Ende.
order by feldname
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 |
AW: Prüfen ob Spalte eines DBGrid leer ist
Okay, dann erzähle ich vielleicht doch etwas mehr zu meinem Problem...
Ich habe eine SQL Abfrage mit der ich mehrere Spalten abfrage.
Code:
Diese Abfrage möchte ich immer wieder gleich verwenden.
SELECT Spalte1, Spalte2, Spalte3, Spalte4 FROM Tabelle
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:
Nur leider prüft IsNull nur den Wert des aktuellen Datensatzes in der Spalte. Daher suche ich eine andere Möglichkeit...
if DBGrid.Fields['Spalte3'].IsNull
then DBGrid.Columns['Spalte3'].Visible:=false else DBGrid.Columns['Spalte3'].Visible:=true |
AW: Prüfen ob Spalte eines DBGrid leer ist
Wieso nicht so wie baumina vorgeschlagen hat, allerdings mit einem NOT dazwischen?
SQL-Code:
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.
SELECT
COUNT(*) FROM Tabelle WHERE Feld IS NOT NULL |
AW: Prüfen ob Spalte eines DBGrid leer ist
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.
|
AW: Prüfen ob Spalte eines DBGrid leer ist
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.
|
AW: Prüfen ob Spalte eines DBGrid leer ist
Mhm, okay, wie könnte dieses Statement für meinen vereinfachten Fall den aussehen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 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-2025 by Thomas Breitkreuz