Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi dbgrid und textfelder in einer postgredb (https://www.delphipraxis.net/87852-dbgrid-und-textfelder-einer-postgredb.html)

Napfton 6. Mär 2007 11:42

Datenbank: PostgreSQL • Version: 8.2 • Zugriff über: ZEOSlib

dbgrid und textfelder in einer postgredb
 
huhu!

Also datenbankzugriff mit zeos ist soweit kein problem, habs mit dem tut hier in der code lib geschafft und auch verstanden!

was ich jetzt nich verstehe ist, warum das TDBGrid welches mir die tabelle ausgibt, bei allen feldern die den datentyp TEXT haben nur (MEMO) anzeigt.

wie kommt das? kann man das ändern?

mfg
Napfton

marabu 6. Mär 2007 12:16

Re: dbgrid und textfelder in einer postgredb
 
Herzlich willkommen in der Delphi-PRAXiS, Napfton.

Das Verhalten ist so gewollt, schließlich steht in einem TEXT-Feld in der Regel viel zu viel Text, als dass er in der Spalte eines Grids angezeigt werden könnte. Du könntest die aber den Inhalt des Textfeldes mit TBlobField.SaveToStream besorgen und beispielsweise die ersten n Zeichen darstellen.

Freundliche Grüße vom marabu

Napfton 6. Mär 2007 12:47

Re: dbgrid und textfelder in einer postgredb
 
danke für die schnelle antwort!

war von mir mal wieder zu früh gefragt: hab per field.value das dataset ausgelesen und gemerkt das es am dbgrid liegt, da ich die daten aber nur zum testen im dbgrid anzeige ists nicht so wichtig das nur er den text kürzt!

danke für deine antwort marabu!

mfg

Napfton 8. Mär 2007 11:16

Re: dbgrid und textfelder in einer postgredb
 
nochmal dazu:

gibts vllt doch eine möglichkeit den text darzustellen ausser den wert des feldes zu holen und nochmal darzustellen? irgendein attribut von TDBGrid? das er weiß das er TEXT felder nur bis zeichen 20 oder so darstellt?

mfg
Napfton

marabu 8. Mär 2007 17:21

Re: dbgrid und textfelder in einer postgredb
 
Hallo Fabian,

wenn du eine statische Feldliste für deinen DataSet (DBGrid.DataSource.DataSet) erzeugst (Doppelklick auf die DataSet-Komponente und alle Felder hinzufügen), dann kannst du für das MemoFeld eine Behandlungsroutine für das Ereignis OnGetText() eintragen:

Delphi-Quellcode:
procedure TDataForm.TableNotesGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  Text := IfThen(DisplayText, Sender.Value, Copy(Sender.Value, 1, 20));
end;
Mit ZEOS habe ich das nicht testen können, also probiere es aus. Das lässt sich auch noch verfeinern.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 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