Entwickler-Ecke
Datenbanken - DBGrid: zwei Felder in eine Spalte lesen
JohannPeter - Sa 26.04.14 14:53
Moderiert von
Narses: Abgetrennt von hier [http://www.entwickler-ecke.de/viewtopic.php?t=112529]
Hallo,
Darf ich zum TDBGrid eine Frage stellen?
Habe 2 Felder Postleitzal und Ort. Wie kann ich diese beiden Felder im DBGrid in eine Spalte lesen?
Bin neu in Delphi.
Vielen Dank für eure Hilfe. :)
WasWeißDennIch - Sa 26.04.14 18:01
Das hängt von der DB ab, auf jeden Fall bräuchtest Du wohl eine Query-Komponente, in deren SQL Du die beiden Felder miteinander verknüpfst. Bezüglich der genauen Syntax musst Du mal in die Doku schauen, aber ungefähr so sollte es aussehen:
SQL-Anweisung
1: 2: 3: 4:
| SELECT PLZ + ' ' + Ort FROM Tabelle |
JohannPeter - Sa 26.04.14 19:20
Hallo,
Danke für die Hilfe. Ich mußte statt dem "+" ein "&" eingeben. Sonst gab es nur eine Fehlermeldung.
Den Rest muß ich noch in der Doku nachlesen.
Danke für die rasche Antwort.
Delete - So 27.04.14 16:47
Du kannst deinem Dataset (oder Query) aber auch ein berechnetes Feld hinzufügen:
1. Rechtsklick auf Dataset: Feld-Editor auswählen.
2. Rechtsklick in Feld-Editor: Alle Felder hinzufügen.
3. Rechtsklick in Feld-Editor: Neues Feld, Editor erscheint.
4. Ausfüllen: einen Bezeichner eintippen, den Typ (gewöhnlich String) und die Länge, in der RadioGroup Berechnet wählen und OK drücken.
5. Das Neue Feld im Feld-Editor auswählen und im OI auf Ereignisse umschalten.
6. Doppelklick in OnGetText, worauf ein leerer Procedure-Rumpf erstellt wird.
7. Implementieren der Befehle, um den Wert des neuen Feldes zu erzeugen. Beispiel:
Ich habe eine Spalte Volume und eine Spalte DateisystemName, die ich in einer Zelle anzeigen will, getrennt durch ein Leerzeichen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TDatMod.ADOTable1VolSysGetText(Sender: TField; var Text: string; DisplayText: Boolean); begin Text := ADOTable1.FieldByName('VolumeName').AsString + ' ' + ADOTable1.FieldByName('DateisystemName').AsString; DisplayText := True; end; |
JohannPeter - So 27.04.14 18:16
Hallo,
Vielen Dank.
Funktioniert Spitze.
Schönen Sontagabend.
LG
Delete - So 27.04.14 18:27
WasWeißDennIch hat folgendes geschrieben : |
SQL-Anweisung 1: 2: 3: 4:
| SELECT PLZ + ' ' + Ort FROM Tabelle | |
Der gesuchte Befehl nennt sich Concat und wird meist durch zwei senkrechte Striche repräsentiert:
Ich hab mir angewöhnt, bei Tabellen, die ich ständig benötige und deren berechnete Felder ich via SQL selektieren kann, ein View (in MSSQL auch Sicht genannt) zu erstellen. Das ist etwas schneller als die Berechnung in der Client-Anwendung, die ich oben gezeigt habe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!