Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBGrid Daten ändern (https://www.delphipraxis.net/162509-dbgrid-daten-aendern.html)

Andidreas 25. Aug 2011 15:41

Datenbank: SQLite • Version: ? • Zugriff über: ADUCOM SQLite

DBGrid Daten ändern
 
hallo zusammen...

kann man daten in einem dbgrid nachträglich abänder/manipulieren?

auf meiner form habe ich ein TDBGrid, TDataSource, Query Komponente... alles ist so miteinander verbunden, das nachdem absetzen eines selects die daten automatisch im TDBGrid angezeigt werden...

über die folgende prozedur habe ich schon versucht die daten nachträglich im dbgrid zu manipulieren (grund ist die falsche darstellung von umlauten):

Delphi-Quellcode:
procedure Tmain_form.prTDBGridUTF8ToAnsi(DBGrid: TDBGrid);

var
i : Integer;

begin

  //Disable Screen Update
  DBGrid.DataSource.DataSet.DisableControls;

  DBGrid.DataSource.DataSet.First;

  While Not (DBGrid.DataSource.DataSet.Eof) Do
  Begin
    For i := 0 To DBGrid.Columns.Count -1 Do
    Begin
      DBGrid.Columns[i].Field.Value := UTF8ToAnsi(DBGrid.Columns[i].Field.AsString);
    End;
    DBGrid.DataSource.DataSet.Next;
  End;

  DBGrid.DataSource.DataSet.First;

  //Enable Screen Update
  DBGrid.DataSource.DataSet.EnableControls;


end;
wenn ich an der stelle wo ich die "UTF8ToAnsi" konvertierung vornehme anhalte, dann seh ich auch das er die inhalte umgewandelt hat... aber hinther in der anzeige werden die umlaute die ich konvertieren möchte immer noch falsch angezeigt...

mach ich etwas falsch oder geht es gar nicht das ich die daten im DBGrid manipulieren kann?

defede 25. Aug 2011 18:02

AW: DBGrid Daten ändern
 
Hallo,
also die Daten musst du auf der Datenbank ändern.
Also mit Query.Edit und dann Query.Post ODER
per UPDATE,StorProc usw...

Soll es nur so aussehen als Ob kannst du Felder unsichtbar machen
und CalcFields nehmen. Alternativ kannst auch das OwnerDraw nutzen
und selber malen. Findest hier im Forum viele gute beiträge dazu.

Andidreas 26. Aug 2011 08:25

AW: DBGrid Daten ändern
 
in der db stehen die daten korrekt drin... ich hab nur ein problem mit miener query komponente, diese holt mir die daten nicht korrekt ab, obwohl die DB selber und die DB komponente auf UTF8 eingestellt ist...

werd mir das mit calcfields und ownerdraw mal anschauen...

gibt es sonst noch möglichkeiten?

schlecki 26. Aug 2011 08:41

AW: DBGrid Daten ändern
 
ich würde mal prüfen, welches Charset deine Query/Connection verwendet und in welchem Format deine Daten in der Datenbank stehen.

Falls du das nur für die Anzeige machen möchtest, schau dir mal TField.OnGetText, bzw. OnSetText an. klick hier

Andidreas 26. Aug 2011 10:52

AW: DBGrid Daten ändern
 
die connection ist auf "UTF8" eingestellt... und das pragma encoding der db ebenfalls, wobei die sqlite standardmäßig eh mit "UTF8" arbeitet... und in der query komponente kann ich den characterset net definieren...

vielen dank für den link, werd ich mir dann auch noch anschauen...

Andidreas 5. Sep 2011 12:13

AW: DBGrid Daten ändern
 
ich hab mir das ganze mit dem OnGetText oder OnSetText angeschaut...
lt. der beschreibung von embercadero müsst ich da ja schon im vornherein wissen welche felder ich im ergebnis anzeig...
aber bei meinem aufbau weiß ich das ja nicht unbedingt im voraus, da ich die felder ja erst im select befehl definiere und nicht schon vorher im designer!

Laines 27. Sep 2011 19:54

AW: DBGrid Daten ändern
 
Hay

Gibt es hierfür schon eine Lösung?

Ich bekomme in meiner Anzeige der Daten im DBGrid für die Umlaute ? (Fragezeichen) und komme irgendwie nicht weiter, dass diese nur im Grid geändert angezeigt werden.

Gruß
Laines


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.

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