Einzelnen Beitrag anzeigen

Acubens61

Registriert seit: 3. Feb 2013
Ort: Darmstadt
6 Beiträge
 
Delphi XE Professional
 
#1

ADO Problem mit SQL DISTINCT und DBEdit

  Alt 3. Feb 2013, 05:09
Datenbank: Firebird • Version: 2.5.2 • Zugriff über: ADO
Hallo an alle Forenmitglieder,
ich bin seit heute neu angemeldet und muss sagen, dass euer Forum eine große Hilfe ist!

Nun habe ich ein Problem, das ich trotz intensivem Googeln seit Tagen nicht lösen konnte:

Ich habe eine Datenbank zur Speicherung von Projekttätigkeiten. Dazu werden Projektnummer, Projektbezeichnung, Zeiten und Mitarbeiter gespeichert.

Ich nutze den Befehl DISTINCT um zu Filtern an welchen Projekten ein Mitarbeiter involviert ist:

SELECT DISTINCT PROJEKTNR FORM ARBEITEN WHERE MITAREBEITER = 'NAME'

Funktioniert auch.

Nun mein Problem:
Da ich Datensätze auf der Maske mit DBEdit anzeige, erhalte ich nach der Select immer Fehler "Das Feld 'Projektbezeichnung' wurde nicht gefunden".

Der Grund liegt daran, dass nach dem Filtern mit DISTINCT die Datenmenge nur noch eine Spalte mit PROJEKTNR hat, die anderen Spalten der Datensätze in den DBEdit-Feldern sich nach der Abfrage aktualisieren möchten und nicht angezeigt werden können (weil nicht da). Habe eine ganze Zeit dafür benötigt um den Feher zu finden und zu verstehen, warum das Programm immer meldete, dass Felder nicht gefunden wurden, auf die ich gar nicht zugreife...

Hat jemand das gleiche Problem schon einmal gehabt? Ich fände es sehr aufwändig, wenn ich für alle Datenfelder mit Exceptions die Meldung abfangen müsste bzw. Abfragen einbauen müsste, wie z.B. if DataSet.FindField ('Projektbezeichnung')<> Nil then ...

Eine Lösung wäre das DISTINCT mit anschließender Ausgabe aller Felder der Ergebnismenge. Das habe ich aber trotz intensivem Suchen nicht gefunden.

SELECT DISTINCT Feld1, Feld2, Feld3 ... FeldN FROM ARBEITEN

wäre falsch, denn es liefert das DISTINCT über alle Felder!

Ich hoffe, dass mir jemand weiter helfen kann und dass es nicht schon ein Thema mit der gleichen Frage gibt (hab keins gefunden).

Grüße
Jörg
  Mit Zitat antworten Zitat