AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken dbgrid , varchar Werte runden
Thema durchsuchen
Ansicht
Themen-Optionen

dbgrid , varchar Werte runden

Ein Thema von bernhard_LA · begonnen am 22. Jan 2024 · letzter Beitrag vom 25. Jan 2024
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

dbgrid , varchar Werte runden

  Alt 22. Jan 2024, 11:01
Datenbank: MSSQL • Version: 12 • Zugriff über: ADO
in meiner Datenbank gibt es zwei Felder für image_x, image_y, diese beiden Felder beinhalten Floating Point Werte.


Delphi-Quellcode:
CREATE TABLE [tablename](
        ....
       [image_x] [varchar](255) NULL,
       [image_y] [varchar](255) NULL,

)

Mit   Select * from mytable where ....

kann ich Werte aus der DB abfragen und in einem DB Grid zur Anzeige bringen. Funktioniert alles wie gewünscht. (VCL Framework)

Frage: Wie kann ich jetzt gerundete Zahlenwerte im DB Grid darstellen? Ich würde nur ungern die Rohdaten in der Datenbank runden, dh. den String verkürzen....


Für die Spaltenbreite habe ich bereits eine Lösung :


Delphi-Quellcode:
  
  IniFile := TIniFile.Create(IniFileName);
  try
    for I := 0 to Grid.Columns.Count - 1 do
    begin
      IniFile.WriteInteger('DBGridSettings', Grid.Columns[I].FieldName,
        Grid.Columns[I].Width);
    end;
  finally
    IniFile.Free;
  end;




Delphi-Quellcode:

  IniFile := TIniFile.Create(IniFileName);
  try
    for I := 0 to Grid.Columns.Count - 1 do
    begin
      Grid.Columns[I].Width := IniFile.ReadInteger('DBGridSettings',
        Grid.Columns[I].FieldName, Grid.Columns[I].Width);
    end;
  finally
    IniFile.Free;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: dbgrid , varchar Werte runden

  Alt 22. Jan 2024, 11:22
Etwas in dieser Art?
(MeineQuery.FieldByName('image_x') as TFloatField).DisplayFormat := '###,##0.00' Da du die Felder aber als varchar definiert hast, könntest du bei ungültigen Inhalten Probleme bekommen.
Peter
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#3

AW: dbgrid , varchar Werte runden

  Alt 22. Jan 2024, 12:23
Die erste Frage ist natürlich, wieso Du floating point Zahlen in VARCHAR-Feldern ablegst und nicht in NUMBER oder anderen für solche Daten vorgesehenen Feldtypen.

Ansonsten sieh Dir mal den OnDrawDataCell event des grids an, da kannst Du den Feldinhalt anzeigen wie Du willst.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: dbgrid , varchar Werte runden

  Alt 22. Jan 2024, 13:36
Das komische Delphi-StringGrid kennt nur ein OnGetEditText,
aber am DataSet, bzw. am TField, gibt es ein OnGetText und dort kann man Display und EditText entsprechend formatieren, wie man will.
$2B or not $2B
  Mit Zitat antworten Zitat
Bodenseematze

Registriert seit: 10. Jul 2023
68 Beiträge
 
#5

AW: dbgrid , varchar Werte runden

  Alt 25. Jan 2024, 15:46
Du könntest auch den DB-Server Deine Varchar-Werte in Float-Werte umwandeln lassen (über das SELECT-Statement); sowas in der Art:
Code:
SELECT CONVERT( DECIMAL(18, 5), [image_x] ) AS [numImage_x], [image_x], ...
Das geht dann natürlich auch zusätzliche / gleichzeitig mit den nicht umgewandelten Werten.
Das Runden könnte die Datenbank dann auch gleich mit übernehmen (SQL-Funktion ROUND)...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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