AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sprachabhängige Formatstrings im Datenmodul?
Thema durchsuchen
Ansicht
Themen-Optionen

Sprachabhängige Formatstrings im Datenmodul?

Ein Thema von Der schöne Günther · begonnen am 17. Mär 2014 · letzter Beitrag vom 17. Mär 2014
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 17:03
Datenbank: Access • Version: 12.0 • Zugriff über: FireDAC
Ein TDBGrid hängt an einem TDataSource hängt an einem TDataSet . Normaler Alltag.

Nun formatieren insbesondere unsere für Demokratie und Frieden kämpfenden Wohltäter auf der anderen Seite des großen Teichs Währungen oder Zeit nun einmal anders. Auch nichts neues.

Nur: Wo stecke ich jetzt die Sprach/Landesabhängigen Dinge wie Formatstrings hin? Ich kann beim DBGrid mit seinen Spalten nichts einstellen, am DataSource nichts, nur in den Feldern des TDataSets. Da hat mein Feld vom Typ TSQLTimeStampField eine schöne Eigenschaft DisplayFormat für das man gleich einen Format-String für die Zeitangabe reinpacken kann.

Aber hier rein sprachabhängige Dinge reinzupacken missfällt mir- Mein Datenmodul wollte ich eigentlich von der Optik nicht beinflussen lassen...

Gibt es noch andere Wege? Der DBGrid wird sich ja wahrscheinlich an den "globalen" Formatsettings der Anwendung orientieren- Aber in diesem Fall komme ich um einen Formatstring nicht herum da FireDAC von diesem Feld irgendwie immer ein volles Datum ausgibt mit Uhrzeit ausgibt, enthalten ist aber nur eine Uhrzeit.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 17:14
Aber hier rein sprachabhängige Dinge reinzupacken missfällt mir- Mein Datenmodul wollte ich eigentlich von der Optik nicht beinflussen lassen...
Und dann nutzt Du TDBGrid ?

Aber im Ernst, ich nutze dafür eine SQLProcedure, die ungefähr so aufgebaut ist

Delphi-Quellcode:
case LC of
  'US': to_char(input,'MM,DD,YYYY')
  'DE': to_char(input,'DD.MM.YYYY')
end;
Da ich das für Brieferzeugung nutze, darf es auch Teil der DB sein

Bei Rechercheergebnissen, gibt es grundsätzlich nur das ISO-Datum, das gefällt allen nicht, ist aber theoretisch bekannt.
(das ist wie mit PS und KW)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 17:24
Und dann nutzt Du TDBGrid ?
Für eine Alternative bin ich immer offen. Ich kenne mich in Sachen "Delphi und Datenbanken" nicht aus. Mir fehlt so eine Art FormatString-Property auf GUI-Ebene.

Ob ich das jetzt in einen Delphi-TField oder der SQL-Query steckt- Finde ich, ist doch im Endeffekt das gleiche.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 17:34
Werte für Datum und Währung benötigen einen Kontext (welche Zeitzone, welche Währung) um korrekt interpretiert zu werden.
Diesen Kontext sollte man auch in der DB hinterlegen.

Und wenn man schon dabei ist, dann speichert man sich dort auch das Anzeigeformat ab.
Also eine einfache Key-Value-Tabelle und dort die ganzen Werte rein und im Programm verwenden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 17:50
Für mich sind alle TDB...-Komponenten PfuiBa weil sie unter Umständen ein Eigenleben entwickeln, da schiebe ich lieber meine Daten in normale Grids... und führe auch ganz bewußt einen Update(insert, update) durch.

Aber da finde ich hier nicht so viele Mitstreiter.

Zu Deinem Problem, es kommt darauf an. Wenn Du die Datums/Währungs...Angabe an den Benutzer, bzw. seine Ländereinstellung anpassen willst, dann nimm die üblichen irgendwastoStr-Routinen, denn die werten das Benutzer-Land aus.
Willst Du auf einem deutschen PC, Daten für Amerika produzieren,dann schieb zwischen Abfrage und Ausgabe (Grid) eine Formatierroutine ein.
(allerdings bezweifle ich, daß das nit DBGrid) überhaupt geht.
Aber eine abgeleitete Klasse....

Gruß
K-H

@Sir Rufo
Wenn du meinst "in einer DB" stimme ich Dir voll zu, warum sollte ich in 10 DBs 10 mal allgemeine Formatinfos hinterlegen? Das ist nur notwendig wenn ich für eine DB spezielle Formatinformationen benötige.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 17:55
Aber in diesem Fall komme ich um einen Formatstring nicht herum da FireDAC von diesem Feld irgendwie immer ein volles Datum ausgibt mit Uhrzeit ausgibt, enthalten ist aber nur eine Uhrzeit.
Vielleicht genügt es, dem DisplayFormat des Feldes einfach FormatSettings.LongTimeFormat zuzuweisen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 19:00
@p80286

Es kommt nicht auf die Anzahl der DBs an, sondern auf den Gültigkeitsbereich des Kontexts.

10 verschiedene Datenbanken mit dem gleichen Kontext benötigen auch nur einmal diese Information.
Ist der Kontext pro Datensatz unterschiedlich, benötigt man diese Information pro Datensatz.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Sprachabhängige Formatstrings im Datenmodul?

  Alt 17. Mär 2014, 20:18
Willst Du auf einem deutschen PC, Daten für Amerika produzieren,dann schieb zwischen Abfrage und Ausgabe (Grid) eine Formatierroutine ein.
(allerdings bezweifle ich, daß das nit DBGrid) überhaupt geht.
Grade da finde ich nichts. Die "optischen" Eigenschaften hängen alle im DataSet, also ziemlich früh.

Vielleicht genügt es, dem DisplayFormat des Feldes einfach FormatSettings.LongTimeFormat zuzuweisen.
Das genügt sogar höchstwahrscheinlich.
  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 14:22 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