Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Werte im DBGrid ändern (https://www.delphipraxis.net/149935-werte-im-dbgrid-aendern.html)

aurikel_Max 4. Apr 2010 16:45

Re: Werte im DBGrid ändern
 
Erstmal danke ich Euch beiden für die Antworten.

Zitat:

Zitat von haentschman
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 ?

1. Okay.
2. Wie gesagt, im Moment noch per Hand, später über den Befehl von oben.
3. Das kommt drauf an, aber hab ich das nicht schon in Beitrag #14 (http://www.delphipraxis.net/internal...144178#1144178) geschrieben, oder versteh ich Dich gerade falsch (das kann auch sein)?

Zitat:

Zitat von haentschman
Edit:
- wie Deddy schon sagte, Parameter sind besser.

Zitat:

Zitat von DeddyH
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.

Ich verwende DISQLite3 Personal, auf den ersten Blick hab ich nichts zu Parametern gefunden, allerdings kann das auch daran liegen, dass ich nicht weiß, was Parameter sind. :oops: (bitte nicht steinigen :()

Edit: Da Du deinen Post aktualisiert hast, mach ich das auch mal eben, wenn ich meine SQL-Abfrage in
SQL-Code:
SELECT datum FROM aktienwerte
umforme, ist das Ergebnis folgendes (in meinem DBGrid):
http://img39.imageshack.us/img39/3951/dbgridsql.png

Zur Zeit liegen die Werte in der Datenbank in folgender Form (betrachtet über den SQLite Database Browser) vor:
http://img339.imageshack.us/img339/5...rmatierung.png

haentschman 4. Apr 2010 16:51

Re: Werte im DBGrid ändern
 
ein Beispiel Zeos mit Parametern:
Delphi-Quellcode:
ZQueryDiv.SQL.Text:= 'insert into VERSION (VERSION,DATUM) values(:Version,:Datum)';
ZQueryDiv.ParamByName('Version').Value:= UVersion;
ZQueryDiv.ParamByName('Datum').Value:= StrToDate(UVersionDatum);
ZQueryDiv.ExecSQL;
ZQueryDiv --> deine Query. Dann schauen ob ParamByName oder so ähnlich vorhanden ist.

zu deinem Edit: und was passiert, wenn du das TDateTimeField(dsqlBlubbaQuery.FieldByName('Datum' )).DisplayFormat := 'dd.mm.yyyy' nach dem Query Open einstellst ?

DeddyH 4. Apr 2010 16:53

Re: Werte im DBGrid ändern
 
Was ich meinte, sind parametrisierte Statements.
Delphi-Quellcode:
Query.SQL.Text := 'INSERT INTO Tabelle(Datum) VALUES(:datum)';
Query.ParamByName('datum').Value := StrToDate('01.01.2010');
Query.ExecSQL;
[edit] Nanu, roter Kasten, wo bist Du geblieben? [/edit]

haentschman 4. Apr 2010 16:54

Re: Werte im DBGrid ändern
 
DeddyH hats genauer... PS: warum besetzt ?

aurikel_Max 4. Apr 2010 17:05

Re: Werte im DBGrid ändern
 
Danke für die Erklärung mit den Parametern, dass schau ich mir genauer an, wenn ich das Problem mit dem DBGrid gelöst habe.

Zitat:

Zitat von haentschman
zu deinem Edit: und was passiert, wenn du das TDateTimeField(dsqlBlubbaQuery.FieldByName('Datum' )).DisplayFormat := 'dd.mm.yyyy' nach dem Query Open einstellst ?

_
http://img535.imageshack.us/img535/3708/tdatetime.png
(das Bild zeigt einmal die Prozedur, sowie das DBGrid)

Ich hab, wie auf dem Bild zu sehen, "TDateTimeField(dsqlBlubbaQuery.FieldByName('Datum ')).DisplayFormat := 'dd.mm.yyyy'" in die AfterOpen-Prozedur geschrieben, das Ergebnis ist das Gleiche.

Edit:
Zitat:

Zitat von DeddyH
[edit] Nanu, roter Kasten, wo bist Du geblieben? [/edit]

Was für ein Kasten?

Edit2: Falls es hilft, kann ich auch nochmal den ganzen Inhalt der Datenbank auf einem Screenshot festhalten.

haentschman 4. Apr 2010 17:13

Re: Werte im DBGrid ändern
 
zugegeben...langsam gehen mir die Ideen aus. 100 mal schon gemacht und es ist wie es sein soll. :gruebel:

- sicher, daß das AfterOpen auch ausgeführt wird ? Schreib das mal einfach unter den Open Befehl.
- das Bild ist ein normales DBGrid ?

Edit: irgendwie versteh ich nicht, daß das Datum (sprich der DATE Wert in der DB) im DBGrid nicht richtig angezeigt wird. Normalerweise braucht man sich um diese Darstellung keine Mühe machen. Irgendwo fummelt wer daran rum :roll:

aurikel_Max 4. Apr 2010 17:32

Re: Werte im DBGrid ändern
 
Zitat:

Zitat von haentschman
- sicher, daß das AfterOpen auch ausgeführt wird ? Schreib das mal einfach unter den Open Befehl.

Hab ich mit einem Haltepunkt überprüft und ein Open hat auch nicht geholfen :/
Zitat:

Zitat von haentschman
- das Bild ist ein normales DBGrid ?

Das ist ein ganz normales TDBGrid.

Vielleicht hilft es ja, hier nochmal die komplette Struktur der Datenbank, sowie der Inhalt von "aktienwerte":

http://img688.imageshack.us/img688/3...ktursqlite.png
(ich hoffe, dass das Bild nicht problematisch ist (wegen der Größe))

Zitat:

Zitat von haentschman
zugegeben...langsam gehen mir die Ideen aus. 100 mal schon gemacht und es ist wie es sein soll. :gruebel:

Hab ich die Daten überhaupt richtig abgespeichert? (siehe Screenshot)

Gruß.

DeddyH 4. Apr 2010 17:35

Re: Werte im DBGrid ändern
 
Ich vermute, da steht bereits "Schrott" in der Tabelle. Falls das nur Testdaten sind, würde ich an Deiner Stelle die gesamte Tabelle droppen, neu anlegen und korrekt befüllen.

haentschman 4. Apr 2010 17:47

Re: Werte im DBGrid ändern
 
da steh ich mit DeddyH auf einer Stufe. ich denke auch, daß bereits in der DB was nicht stimmt und du dir damit
Delphi-Quellcode:
dsqlAktien.Execute16
      ('INSERT INTO aktienwerte(AktienID,Datum,Kurs) VALUES (' + #39 +
      string_id + #39 + ', ' + #39 + string_date + #39 + ', ' + #39 +
      string_value + #39 + ');');
irgend was komisches reinschreibst.

...mach mal ne Pause und schaue ob deine Query Parameter unterstützt. Wir müssen erst mal sicherstellen, daß in der DB auch das richtige steht.

aurikel_Max 4. Apr 2010 17:47

Re: Werte im DBGrid ändern
 
Zitat:

Zitat von DeddyH
Ich vermute, da steht bereits "Schrott" in der Tabelle. Falls das nur Testdaten sind, würde ich an Deiner Stelle die gesamte Tabelle droppen, neu anlegen und korrekt befüllen.

Es ist kein Problem, die Datenbank neu zu erstellen, diese würde ich allerdings wieder mit dem SQLite Database Browser erstellen und befüllen, dann musst Du mir aber bitte sagen, wie die Formatierung beim Typ DATE ist (mit Bindestrich, Punkt, Komma, direkt aneinander). :|

Wenn ich mir http://www.sqlite.org/lang_datefunc.html anschaue, steht da u.a.:
Zitat:

Zitat von http://www.sqlite.org/lang_datefunc.html
A time string can be in any of the following formats:

1. YYYY-MM-DD

Müsste ich es also zB. 2010-01-30 (für den 30igsten Januar 2010) eintragen?

Liebe Grüße.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz