DBGrid
-
Hallo,
ich bin gerade dabei eine Datenbankensoftware zu schreiben und ich sitze an zwei Problem:
1. Kann ich in einem DBGrid Element die einzelnen Einträge in verschiedenen Farben darstellen lassen?
2. In meiner Datenbanktabelle gibt es eine Spalte "Häufigkeit" und eine Spalte "Nummer". Jedesmal wenn eine Nummer (z.B. 234) eingetragen wird soll bei allen Einträgen in der Tabelle mit der Nummer 234 die "Häufigkeit" um 1 Hochgesetzt werden, also so eine Art Zähler. Wie gaht das???
Danke
-
zu 1: die Farbe einzelner Zellen kann beim Ereignis OnDrawDataCell oder OnDrawColumCell des DBGrid geändert werden
zu 2: mittels SQL, z.B. UPDATE table SET haeufigkeit = haeufigkeit + 1 where Nummer like '234'
-
zu 1. Kann man über das Ereignis TDBGrid::OnDrawColumnCell() machen.
zu 2. Spontan fallen mir zwei Möglichkeiten ein: Entweder über ein berechnetes Feld, dessen Wert Du über ein Select-Count-Statement machst (kann sehr langsam sein), oder Du führst die Häufigkeit tatsächlich in der Tabelle als Feld mit und aktualisierst den Wert bei jeder Einfügeoperation. Praktisch ein nachgeführtes Update auf alle Datensätze in denen der Wert vorkommt, wird Häufigkeit um eins erhöht (SET Häufigkeit = Häufigkeit + 1 WHERE (Wert = EingefügterWert).
-
Linnea schrieb:
zu 2: mittels SQL, z.B. UPDATE table SET haeufigkeit = haeufigkeit + 1 where Nummer like '234'
das like greift dann aber auch bei 2345 oder 1234.
-
Sunday schrieb:
Linnea schrieb:
zu 2: mittels SQL, z.B. UPDATE table SET haeufigkeit = haeufigkeit + 1 where Nummer like '234'
das like greift dann aber auch bei 2345 oder 1234.
nein, tut es nicht, es kommt nur der Datensatz wo GENAU 234 steht, d.h. '234 ' oder ähnliches geht nicht, erst wenn man '%234%' macht kommen alle Varianten
-
ach stimmt ja, die % fehlen ja.
