Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL abfrage mit mehreren Tabellen (https://www.delphipraxis.net/24960-sql-abfrage-mit-mehreren-tabellen.html)

Phantom1 29. Jun 2004 07:26


SQL abfrage mit mehreren Tabellen
 
Hallo,

ich habe ein problem und zwar soll ich ein programm schreiben wo der benutzer aus einer SQL-Datenbank mit mehreren tabellen ein abfrage starten kann, die tabellen kann der benutzer selbst auswählen und da liegt mein problem. Wenn ich die Abfrage manuell eingebe gehts natürlich zb so hier:

SELECT * FROM Kunden, Rechnung WHERE Kunden.KundNr=Rechnung.KundNr AND ...

Das problem ist eben das nicht immer die erste Spalte einer Tabelle auch die schlüsselspalte (zb KundNr) ist. Hab ihr irgendwie eine Idee? Man hat mir gesagt das ich das auch irgendwie mit dem Indexnamen (ApolloQuery1.Tagname()) machen kann, ich weiß jedoch nicht genau wie.

mfg

ibp 29. Jun 2004 07:57

Re: SQL abfrage mit mehreren Tabellen
 
es ist doch egal in welcher spalte es steht wichtig ist doch der feldname oder verstehe ich das problem nicht?

TypusMensch 29. Jun 2004 08:25

Re: SQL abfrage mit mehreren Tabellen
 
SQL-Code:
SELECT * FROM Kunden, Rechnung WHERE Kunden.KundNr=Rechnung.KundNr AND ...
Bei deiner Query steht an erster Stelle dann in diesem Beispiel (zu sehen z.B. in einem DBGrid der 1. Spalte) auch der erste Datentyp/Datenname der Tabelle Kunden, 2. Spalte auch der 2. Typ der Tabelle Kunden, usw. bis die Tabelle Kunden keine weiteren Datenbanktypen beinhaltet, dann geht es los mit der Tabelle Rechnung und das Gleiche halt von vorn.

Also wenn du in deiner Tabelle (z.B. mit der Datenbankoberfläche) nicht auch KundNr als erstes Feld eingetragen hast, kommt es auch nicht als erstes in deiner DBGrid (bzw. Abfrage).

Ich hoffe ich habe so richtig verstanden.

Wenn du z.B. KundNr trotzdem als erstes in deiner DBGrid anzeigen lassen möchtest, mache folg.:
Gebe deinen SQL-Code einfach mal in die Query ein. Databasename richtig eingegeben, könntest du jetzt die Query aktivieren. Klicke danach doppelt auf die Query und klick auf alle "alle Felder hinzufügen...". Schon siehst du die wirkliche Reihenfolge. Dananch noch eine DataSource an deine Query hängen und diese widerum mit ner DBGrid verbinden. DBGrid doppelt anklicken und wieder "alle Felder hinzufügen...". Jetzt kannst per Maus einfach wahlweise die Ansicht (Spalten, Spaltennamen, etc) der einzelnen Felder ändern.

Ich hoffe, dass war's was du gemeint hast.


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