Autor Beitrag
Morpheus1572
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Fr 18.04.08 08:30 
wie ich das obige problem mit grid löse habe ich schon ansatzweise gefunden. aber wie ich es ohne dem mache ist mir nicht klar.

Die Situation:

ich muss herausfinden ob in einem db-satz irgendein feld leer ist. egal welches. ich dachte mir, ich ermittel die anzahl der spalten und springe dann mit hilfe des index -1 von feld zu feld und prüfe ob was drin steht.

aber ich scheiter schon bei der ermittlung der spalten mittels SQL-Anweisung. wenn ich count(*) benutze bekomme ich ja die anzahl der datensätze. gibt es sowas wie colcount oder so? und wenn ja, wie stelle ich den rest an. mittels einer for-schleife oder gibt es da auch wieder sowas schönes von SQL was mir das vereinfacht?

Wer hat blos die theorie erfunden? in der klappt immer alles auf anhieb! ;-)
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 18.04.08 09:22 
Hi,

du kannst über MyDataSet.Fields.Fields[i] auf die einzelnen Felder zugreifen. Mit MyDataSet.Fields.Count ermittelst du deren Anzahl.

Gruß
Klabautermann
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Fr 18.04.08 09:29 
Moin,

die pallette von Delphi ist erschlagend. okay, mit dataset meinst du mein ADOQuery?
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Sa 19.04.08 00:03 
Hi,

user profile iconMorpheus1572 hat folgendes geschrieben:
die pallette von Delphi ist erschlagend. okay, mit dataset meinst du mein ADOQuery?


ja, zum Beispiel. Die allermeisten Datenbank Zugriffskomponenten ind Delphi sind abgeleitet von tDataSet und somit sind sie alle sehr ähnlich zu bedienen. So haben z.B. die Beschreibungen, die ich hier vor über 5 Jahren hier für de BDE Komponenten gemacht auch heute noch ihre Gültigkeit für dein ADOQuery.

MyDataSet war also nur ein fiktiver Variablenname, der darauf hinweisen sollte das es sich um eine von tDataSet abgeleitete Komponente handelt.

Gruß
Klabautermann
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Sa 19.04.08 07:12 
hmmm, ich scheine was falsch zu machen... guck bitte mal drüber:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
          ADOQuery1.Active := False;
          ADOQuery1.SQL.Text := 'SELECT count(AGInfoID) as ANZ FROM AGInfo';
          ADOQuery1.Active := True;

          i := ADOQuery1.Fields.Count;
          DatZaehler := IntToStr(i);
          ShowMessage('Die Anzahl der Spalten beträgt: ' + DatZaehler);


Die Tabelle 'AGInfo' ist leer und hat insgesamt 13 Felder. Bei der Auswertung von 'i' bekomme ich das Ergebnis 1 zurück. (?)

Gruß Morph.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Sa 19.04.08 10:19 
Ich mache es immer mit 'MyDataset.FieldCount'

_________________
Na denn, dann. Bis dann, denn.
Agawain
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 460

win xp
D5, MySQL, devxpress
BeitragVerfasst: Sa 19.04.08 10:51 
Moin

Du arbeitest mit einem Query, dieses Query wirkt wie ein Dataset.
Wenn Du aber ein SELECT COUNT machst, dann sind in dem sozusagen virtuellen Dataset nur die Anzahl Datensätze, keine Felder.

Mach ein SELECT * dann sollte es mit field.count funktionieren.

Kleine Korrektur: Insofern doch 1 Feld, darum auch die Rückgabe 1, nämlich das Feld, dass Dir sagt, wieviel Datensätze vorhanden sind.

_________________
Gruß Aga
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Sa 19.04.08 15:50 
@Agawain: SUPER. Danke. Funzt. ;-)