Autor Beitrag
Der Jan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Win2k prof, WinXP prof, Linux
D6 Prof, BCB4 Std, BCB6 Ent, BDS 2006 Ent
BeitragVerfasst: Di 15.11.05 11:48 
Hallo,

Ich habe eine DB (Firebird) und möchte deren Inhalt nun in entsprechender Form in einem Programm darstellen. Ich nutze die FIBplus-Komponenten und zum Darstellen DevExpress QuantumGrid (cxGrid), aber das Probelm ist nicht von diesen Komponenten abhängig, denke ich.
Zum Beispiel sind in einer Tabelle"Mitarbeiter" Daten von Mitarbeitern gespeichert, u.a. auch die Abteilung als Foreign Key auf die Tabelle "Abteilung", wo z.b. der Klartextname der Abteilung steht. Die Daten der Mitarbeiter im Grid darzustellen ist ja kein Problem. Meine Frage: Wie kann ich die Abteilung als Klarteext anzeigen lassen statt der ID.
Ich habe in der entprechenden Dataset-komponente das SELECT-Statement geändert:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
SELECT
    ID,
    PNR,
    NAME,

//gekürzt...

    ORT,
    (SELECT NAME FROM ABTEILUNG WHERE ID=MITARBEITER.ABTID) AS ABT
FROM
    MITARBEITER


Dennoch wird nur der Key (ABTID) angezeigt in nicht der Name...
ich muss dazu sagen, ich kenn mich zwar einigermassen mit Datenbanken aus, arbeite aber noch nicht lange mit den DB-Controls in Delphi... :wink:

_________________
Gruß, Jan
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 15.11.05 12:15 
Die DB-Controls haben damit nichts zu tun.
Dein SQL sollte etwas so aussehen:
ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
SELECT
    MITARBEITER.ID,
    MITARBEITER.PNR,
    MITARBEITER.NAME,

//gekürzt...

    MITARBEITER.ORT,
    ABTEILUNG.NAME AS ABT
FROM
    MITARBEITER, ABTEILUNG
    WHERE MITARBEITER.ABTID = ABTEILUNG.ID
Der Jan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Win2k prof, WinXP prof, Linux
D6 Prof, BCB4 Std, BCB6 Ent, BDS 2006 Ent
BeitragVerfasst: Di 15.11.05 12:26 
Das bringt leider nichts...
Ich nehme z.B. ein DBGrid, und möchte dort die entsprechenden Spalten/Daten anzeigen. Nehme ich den Spalteneditor und mache "alle Felder hinzufügen" habe ich die original-Spalten aus der Tabelle. Egal wie ich die SQL-Anweisung ändere. Das muss irgendwie anders gehen.... Aber wie?

_________________
Gruß, Jan
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 15.11.05 12:29 
Also ich mache das immer so.
Allerdings benutze ich nie den Spalteneditor!
Der Jan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Win2k prof, WinXP prof, Linux
D6 Prof, BCB4 Std, BCB6 Ent, BDS 2006 Ent
BeitragVerfasst: Di 15.11.05 13:14 
Und wie mache ich das dann? Also die Ergebnisse der Abfrage entsprechend anzeigen?

_________________
Gruß, Jan
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 15.11.05 13:29 
Wenn du den Spalteneditor komplett leerst, werden alle Felder im DBGrid angezeigt, die im "Select" stehen. Evtl. musst du deine Abfrage einmal aktualisieren, damit du es siehst. Falls du auch noch den Spalteneditor vom Query benutzt, gilt dort natürlich das gleiche. Aber grundsätzlich sollte man immer nur einen Spalteneditor (wenn überhaupt) verwenden.

Und bevor die Frage kommt, wie ich denn die Spalten formatiere und für die Anzeige selektiere:
Ich habe auf meiner HP eine Komponente (Feld-Formatierer) zum Felder Formatieren zum freien Download zur Verfügung gestellt. Aber bitte die Kurz-Doku dazu lesen.
Der Jan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98

Win2k prof, WinXP prof, Linux
D6 Prof, BCB4 Std, BCB6 Ent, BDS 2006 Ent
BeitragVerfasst: Di 15.11.05 13:38 
Besten Dank, das funktioniert. Ich denke es lag daran, das noch alte Werte für Felder bzw. Spalten vorhanden waren. Als ich alles gelöscht hatte, ging es.