Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FreePascal Statt Daten wird (MEMO) angezeigt (https://www.delphipraxis.net/188817-statt-daten-wird-memo-angezeigt.html)

AlexII 10. Apr 2016 12:23

Datenbank: SQLite • Version: 3 • Zugriff über: SQLite3Connection

Statt Daten wird (MEMO) angezeigt
 
Hallo,

ich benutze die DBComboBox Komponente für die Anzeige der Anrede aus einer referenzierten Tabelle, aber anstatt Anrede wird einfach nur (MEMO) angezeigt, auch wenn ich ein DBEdit dafür nehme. Woran liegt es eigentlich? Mit den restlichen Attributen ist alles ok, vorname, nachname werden richtig angezeigt. Vielen Dank!

Hier der Code:
Delphi-Quellcode:
...
  DBComboBox1.DataSource := DataSource1;
  DBComboBox1.DataField := 'anrede';

  DBEdit4.DataSource := DataSource1;
  DBEdit4.DataField := 'anrede';
...


procedure TMainForm.Button1Click(Sender: TObject);
begin
  SQLQuery1.Active := False;
  SQLQuery1.SQL.Text := 'SELECT tbteilnehmer.id_teilnehmer, '
  + 'tbteilnehmer.tnr, '
  + 'tbanrede.anrede, '
  + 'tbteilnehmer.vorname, '
  + 'tbteilnehmer.nachname '
  + 'FROM tbteilnehmer '
  + 'LEFT JOIN tbanrede ON tbteilnehmer.fk_anrede_id=tbanrede.id_anrede';
  SQLQuery1.Active := True;
end;

mkinzler 10. Apr 2016 12:55

AW: Statt Daten wird (MEMO) angezeigt
 
Handelt es sich beim Feld um einen Blob?

AlexII 10. Apr 2016 12:57

AW: Statt Daten wird (MEMO) angezeigt
 
Ich hab's, 'anrede' war als TEXT deklariert, hab's auf VARCHAR(100) geändert.

Aber was ist mit Feldern die TEXT sind? Irgendwie muss man sie doch laden.

haentschman 10. Apr 2016 12:58

AW: Statt Daten wird (MEMO) angezeigt
 
Moin...:P
Guckst du...http://stackoverflow.com/questions/4...ds-in-sqlite-3.
Das DB Grid hat genau auch das Leiden. Der Fehler ist einfach das ein Blob ein Blob (mehrzeilig binär oder Text) und eben kein String ist. Du hast 2 Möglichkeiten. Den Feldtyp auf "string" ändern (ein Blob ist für die Anrede sowieso überflüssig) oder das Memo auslesen, in einen String wandeln und anzeigen. (OnGetText beim Grid)

Genau solche Dinge sind es die mich bei dem Gedanken an datensensitive Controls schaudern lassen und zunehmend radikalisieren... :P

AlexII 10. Apr 2016 13:05

AW: Statt Daten wird (MEMO) angezeigt
 
Zitat:

Zitat von haentschman (Beitrag 1335167)
das Memo auslesen, in einen String wandeln und anzeigen. (OnGetText beim Grid)

An welcher Stelle oder wo im Code macht man das, z.B. mit DBMemo?

haentschman 10. Apr 2016 13:10

AW: Statt Daten wird (MEMO) angezeigt
 
Das DBMemo kann das von Haus aus. Das brauchst du nur anzubinden. Das regelt die "Umwandlungen" selbst. Dafür ist es ja gemacht. :wink:

AlexII 10. Apr 2016 13:14

AW: Statt Daten wird (MEMO) angezeigt
 
Zitat:

Zitat von haentschman (Beitrag 1335169)
Das DBMemo kann das von Haus aus. Das brauchst du nur anzubinden. Das regelt die "Umwandlungen" selbst. Dafür ist es ja gemacht. :wink:

Ach so... ok, danke. Und zurück zu der DBComboBox. Da wird nur die eine Anrede angezeigt, verstehe ich auch. Um alle Anreden zu laden muss wohl eine Schleife her. Wo macht man das am besten?

mkinzler 10. Apr 2016 13:22

AW: Statt Daten wird (MEMO) angezeigt
 
Eigene Abfrage und diese als ListSource binden.

AlexII 10. Apr 2016 16:51

AW: Statt Daten wird (MEMO) angezeigt
 
Vielen Dank!


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