Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Daten im DBGrid für Anzeigezwecke manipulieren (https://www.delphipraxis.net/132987-daten-im-dbgrid-fuer-anzeigezwecke-manipulieren.html)

Tempdir 23. Apr 2009 10:05

Datenbank: TurboDB • Version: 5.16 • Zugriff über: TDB-Komponenten

Daten im DBGrid für Anzeigezwecke manipulieren
 
Hallo,

ich habe eine TDBQuery-Komponente die auf eine Datenbank zugreift (z.B. SELECT * FROM tabelle). Über eine Datasource-Komponente zeige ich das Ergebnis in einem DBGrid an.

Meine Frage:
Wie kann ich z.B. die komplette dritte Spalte des DBGrids mit einem Faktor multiplizieren? Also dass jedes Feld dieser Spalte z.B. mit 5 multipliziert wird. Das soll lediglich zur Anzeige dienen, die Datenbank darf nicht verändert werden.

Mache ich diese Manipulation direkt im DBGrid, oder besser in der Query-Komponente oder über eine zusätzliche Table-Komponente?

Fragen über Fragen :) - vielen Dank schonmal für eure Hilfe.

mkinzler 23. Apr 2009 10:08

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
Kannst du im Query machen.

nahpets 23. Apr 2009 10:14

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
SQL-Code:
select
Spalte1 As LinkeSpalte,
Spalte2 * 5 As Mal5Spalte,
Spalte4 / 4711 As StinktmirSpalte,
Spalte4 As RechteSpalte
form Tabelle
Hinter dem As steht die Bezeichnung, die Du im DBGrid gerne als Spaltentitel sehen möchtest, es sei denn, Du gibst im DBGrid irgend einen Text als Spaltentitel vor. Die Bezeichnung hinter dem As ist gleichzeitig die Bezeichnung, mit der Du per FieldByName auf die Spalte zugreifen kannst.

Tempdir 23. Apr 2009 10:31

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
Klappt PERFEKT !!! Besten Dank für die Hilfe :thumb:

Stevie 23. Apr 2009 11:34

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
Es gilt hierbei zu unterscheiden, wo die Berechnung durchgeführt wird:
  • Bei einer Anpassung des SQL Statements wird die Berechnung von der Datenbank übernommen und die Werte übertragen.
  • Alternativ kannst du neue Felder in der Query anlegen und die Property Calculated auf True zu setzen.
    Die Berechnung muss dann im Event OnCalcFields der Query durchgeführt werden.

Tempdir 23. Apr 2009 12:45

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
Danke @ Stevie für die Hinweise.

Kann ich die Datenbank mittels der Query auch gleich "runden" lassen?

also z.B.:

Delphi-Quellcode:
SELECT (column2 / 3) FROM tabelle;

//Würde wenn column2 z.B. den Wert 10 hätte, das Ergebnis 3,3333333 (Periode) ergeben.
Kann ich irgendwie gleich auf 2 Stellen hinter dem Komma runden?

nahpets 23. Apr 2009 14:20

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
Kommt auf die Datenbank an, wenn sie Round kennt, ja.
SQL-Code:
SELECT Round((column2 / 3),2) FROM tabelle;

mkinzler 23. Apr 2009 14:22

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
Wenn dir dein DBMS eine Funktion dafür bietet.

Tempdir 23. Apr 2009 14:30

Re: Daten im DBGrid für Anzeigezwecke manipulieren
 
Zitat:

Zitat von nahpets
Kommt auf die Datenbank an, wenn sie Round kennt, ja.

Sie (TurboDB) kennts zum Glück !!! :)

Nochmals VIELEN DANK für die Hilfe


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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