AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Werte im DBGrid ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Werte im DBGrid ändern

Ein Thema von aurikel_Max · begonnen am 2. Apr 2010 · letzter Beitrag vom 4. Apr 2010
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#11

Re: Werte im DBGrid ändern

  Alt 3. Apr 2010, 13:05
Zitat von haentschman:
und wenn du statt der UniDirQuery eine "normale" Query verwendest ?

Frage: die TDISQL stammen woher ? Schon mal Zeos als alternative Zugriffskomponenten probiert ?
Für Zeos war ich zu doof, Zeos benötigt doch die sqlite3.dll, allerdings hab ich immer einen Fehler beim Zugriff auf die DB bekommen, obwohl ich die .dll hatte. Das könnte ich aber bei Gelegenheit nochmal versuchen.

Zum Thread .. das Problem besteht (aktuell) nicht mehr, da ich in "diesem" DBGrid das Datum gar nicht anzeige (wieso bin ich da gestern Nacht drauf gekommen?!), das Datum wird in einem späterem DBGrid nochmal angezeigt, hierfür muss es dann auch wieder formatiert werden, sollte ich trotz der Hilfe von "haentschman" dabei Probleme haben, werde ich nochmal nachfragen.

Frohe Ostern und Danke an haentschman.
Max
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#12

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 15:59
Zitat von aurikel_Max:
das Datum wird in einem späterem DBGrid nochmal angezeigt, hierfür muss es dann auch wieder formatiert werden, sollte ich trotz der Hilfe von "haentschman" dabei Probleme haben, werde ich nochmal nachfragen.
Bei der Stelle bin ich nun und ich weiß nicht weiter, also wie gesagt, meine Daten liegen in der Datenbank in folgender Weise vor:

Zitat:
Datum (vom Typ "DATE")
2010-03-23
2010-04-02
usw... (alternativ stellt es kein Problem dar, die Werte als Strings zu speichern)
//Edit: Bei der Formatierung hab ich mich an "YYYY-MM-DD" gehalten, so wie es auf http://www.sqlite.org/lang_datefunc.html steht

Nun möchte ich in einem DBGrid die Werte aber so angezeigt bekommen:
Zitat:
23.03.2010
02.04.2010
usw...
Mein SelectSQL lautet nun:
SELECT datum FROM .. ORDER BY datum DESC Was mich allerdings wundert und worauf ich auch keine Antwort weiß ist, dass wenn ich jetzt
Query.FieldByName('Datum').AsString in die Watchliste tue, mir lediglich '2010' angezeigt wird. (in meinem DBGrid wird mir auch nur '2010' angezeigt)

Änder ich die Formatierung des Datums in der Datenbank auf:
Zitat:
20100323
20100402
usw... wird mir das komplette Datum angezeigt (allerdings ohne Punkte usw.).
Wenn ich jetzt
TDateTimeField(dsqlBlubbaQuery.FieldByName('Datum')).DisplayFormat := 'dd.mm.yyyy'; anwende, passiert gar nichts, das Datum wird mir weiterhin in meinem DBGrid als "20100323" usw. angezeigt.

Änder ich die Formatierung des Datums in der Datenbank auf:
Zitat:
2010.03.23
2010.04.02
Wird mir in meinem DBGrid folgendes angezeigt:
Zitat:
2010,04
2010,03
Da ich nicht verstehe, wie dies zustande kommt, wollte ich das Datum (wie ursprünglich vorgesehen) als String abspeichern (hier wird mir immer das komplette Datum angezeigt) und dann in die passende Formatierung bringen, hierbei habe ich verschiedene Ansätze probiert, allerdings war keiner erfolgreich. (die Ansätze kann ich bei Bedarf auch gerne posten)

Könnt ihr mir eine Lösung nennen, wie ich das Datum richtig formatiert in meinem DBGrid angezeigt bekomme?

Gruß
Max
Max
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#13

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 16:39
ich nochmal...

wenn dein DB Feld vom Typ DATE ist wird in der DB das Datum als Integer abgelegt (so sollte es zumindest sein). Die "Umsetzung" in ein lesbares Datum macht das DBGrid von allein. Im Normalfall das im System eingestellte Format.

Fang einfach mal von ganz vorn an:
- alle Formatierungen raus
- einen DATE Wert aus der DB lesen (wie deine SQL Abfrage)
--> wie wird es im Grid angezeigt ?

Zitat:
Änder ich die Formatierung des Datums in der Datenbank auf:
wie machst du das denn ? Mit einem Tool ?
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#14

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 17:02
Zitat von haentschman:
ich nochmal...
Danke, dass Du mir weiterhin hilfst.

Zitat von haentschman:
Zitat:
Änder ich die Formatierung des Datums in der Datenbank auf:
wie machst du das denn ? Mit einem Tool ?
Ja, das mache ich mithilfe von dem SQLite Datatabase Browser (http://sqlitebrowser.sourceforge.net/, Version: 2.0b1).


Zitat von haentschman:
wenn dein DB Feld vom Typ DATE ist wird in der DB das Datum als Integer abgelegt (so sollte es zumindest sein). Die "Umsetzung" in ein lesbares Datum macht das DBGrid von allein. Im Normalfall das im System eingestellte Format.

Fang einfach mal von ganz vorn an:
- alle Formatierungen raus
- einen DATE Wert aus der DB lesen (wie deine SQL Abfrage)
--> wie wird es im Grid angezeigt ?
Okay, also ich formatiere mal die Daten in der Datenbank so :
http://img339.imageshack.us/img339/5...rmatierung.png
(ich hoffe, so meintest du das)

Meine SQL-Abfrage lautet nun:
SELECT Datum FROM aktienwerte; (hab es zu "Testzwecken" darauf vereinfacht)

dann sieht mein DBGrid so aus:
http://img39.imageshack.us/img39/3951/dbgridsql.png

Jetzt hab ich allerdings gerade folgendes probiert und die SQL-Abfrage so gestaltet:
SELECT date(Datum) FROM aktienwerte; dann sieht mein DBGrid so aus (wie kommen bitte die Werte zustande ):
http://img190.imageshack.us/img190/8...datedbgrid.png

Zitat von haentschman:
--> wie wird es im Grid angezeigt ?
Ich hoffe, ich konnte Dir Deine Frage beantworten.
Max
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#15

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 17:08
Hast Du das Feld als Typ int angelegt? Versuch es mal mit Date, das müsste SQLite auch kennen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#16

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 17:16
Zitat von DeddyH:
Hast Du das Feld als Typ int angelegt? Versuch es mal mit Date, das müsste SQLite auch kennen.
Ne, der Typ ist "DATE".

http://img97.imageshack.us/img97/1305/sqldate.png
(bevor Fragen aufkommen, in die Datenbank werden die täglichen Schlusskurse von verschiedenen Aktien durch den Benutzer eingetragen)
Max
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#17

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 17:17
Und wie trägst Du die Daten in die Tabelle ein?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#18

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 17:22
Zitat von DeddyH:
Und wie trägst Du die Daten in die Tabelle ein?
Bisher noch mit der Hand (also über das SQLite Database Browser-Tool), später über:
Delphi-Quellcode:
    dsqlAktien.Execute16
      ('INSERT INTO aktienwerte(AktienID,Datum,Kurs) VALUES (' + #39 +
      string_id + #39 + ', ' + #39 + string_date + #39 + ', ' + #39 +
      string_value + #39 + ');');
wobei ich ja im Moment noch nicht weiß, wie ich das Datum formatieren muss (allerdings muss ich ja eh eine andere Variable (anstatt string_date) nehmen bzw. diese umwandeln, da der Typ "DATE" ja kein String ist).

Edit: Als ich gerade eine Freundin gefragt hab, wieso mein DBGrid Zahlen wie zB. "50320-08-27" anzeigt (bei "SELECT date(datum) FROM aktienwerte")
meinte sie
Zitat:
50320 könnten die tage von 1900 an sein
könnte das hinkommen?

Gruß.
Max
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#19

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 17:24
Ich hab jetzt nicht genau verfolgt, welche Lib Du für den Zugriff verwendest, aber wenn diese Parameter unterstützen sollte, solltest Du diese auf jeden Fall verwenden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#20

Re: Werte im DBGrid ändern

  Alt 4. Apr 2010, 17:24
Der Database Browser formatiert nur die optische Ausgabe. Der Inhalt in der DB wird dabei nicht verändert (wenn es ein DATE Feld ist).

1. Laß mal den Browser einmal aus den Augen.
2. Zeige, wie du das Datum in die DB einträgst.
3. wenn du per SQL das Datum ausliest, wie wird das Datum in einem normalen DBGrid angezeigt ?

Edit:
- wie Deddy schon sagte, Parameter sind besser.
Zitat:
string_date
- wenn das das Datum als String ist... ersetzen durch IntToStr(StrToDate(string_date)) Dabei passiert folgendes: der String wird in einen Date Wert umgewandelt und dann in einen String damit das in deinen SQL String paßt. So was ist mit Vorsicht zu genießen. Parameter sind eindeutiger und weniger kompliziert.

Zitat:
(bei "SELECT date(datum) FROM aktienwerte")
...nur SELECT datum FROM aktienwerte damit liest du den Date Wert ohne Umwandlung. Diese macht das Grid.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 21:19 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