Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ausgabe der Daten 2er Tabellen statt einer (https://www.delphipraxis.net/138735-ausgabe-der-daten-2er-tabellen-statt-einer.html)

youuu 16. Aug 2009 17:24

Datenbank: MySQL • Zugriff über: Devarts

Ausgabe der Daten 2er Tabellen statt einer
 
Hi,

Momentan löse ich es so:

Delphi-Quellcode:
QueryRead.SQL.Text:='SELECT * FROM `'contacts+'` WHERE Customer_number = '''+customer_number+'''';
QueryRead.Open;

position:= FormMain.QueryRead.FieldByName('position').AsWideString;

QueryRead.Close;
Wie kann ich es realisieren wenn ich aber die Werte von 2 Tabellen haben möchte statt nur einer?

also z.B.
Delphi-Quellcode:
QueryRead.SQL.Text:='SELECT * FROM `'contacts+'`   [b] And `'contacts2'[/b]`           WHERE Customer_number = '''+customer_number+'''';
QueryRead.Open;

position:= FormMain.QueryRead.FieldByName('position').AsWideString; (Tabelle1)
position:= FormMain.QueryRead.FieldByName('position').AsWideString; (Tabelle2)

QueryRead.Close;
Oder muss ich das seperat ausführen?

Jürgen Thomas 16. Aug 2009 17:31

Re: Ausgabe der Daten 2er Tabellen statt einer
 
Mit UNION können zwei SELECT-Ergebnisse in eines zusammengefasst und "am Stück" zurückgegeben werden.

Übrigens ist dein Verfahren, einen SQL-Text per String-Verknüpfung zu erstellen, ziemlich miserabel. Du hast schon Probleme mit den Hochkommata; wie soll das erst bei Zahlen und Datumsformaten werden - ganz abgesehen von SQL-Injection. Dafür sind unbedingt Parameter zu verwenden.

Gruß Jürgen

mkinzler 16. Aug 2009 17:34

Re: Ausgabe der Daten 2er Tabellen statt einer
 
Oder einem Join

jfheins 16. Aug 2009 17:35

Re: Ausgabe der Daten 2er Tabellen statt einer
 
So in etwa:
SQL-Code:
select * from table1, table2 where id = 10
also einfach mit Kommas trennen.

Btw.: du brauchst die Backticks nicht unbedingt ;)

P.S.: Parameter sind wirklich besser als Stringverkettung. Solltest du dir mal anschauen ;)

youuu 16. Aug 2009 17:39

Re: Ausgabe der Daten 2er Tabellen statt einer
 
Zitat:

Zitat von Jürgen Thomas
Mit UNION können zwei SELECT-Ergebnisse in eines zusammengefasst und "am Stück" zurückgegeben werden.

Übrigens ist dein Verfahren, einen SQL-Text per String-Verknüpfung zu erstellen, ziemlich miserabel. Du hast schon Probleme mit den Hochkommata; wie soll das erst bei Zahlen und Datumsformaten werden - ganz abgesehen von SQL-Injection. Dafür sind unbedingt Parameter zu verwenden.

Gruß Jürgen

Das war gerade ein kleines Bsp. normal erfolgt alles über Parameter.

mkinzler 16. Aug 2009 17:41

Re: Ausgabe der Daten 2er Tabellen statt einer
 
SQL-Code:
... WHERE Customer_number = :customer_number ...

youuu 16. Aug 2009 17:45

Re: Ausgabe der Daten 2er Tabellen statt einer
 
Zitat:

Zitat von jfheins
So in etwa:
SQL-Code:
select * from table1, table2 where id = 10

Wie kann ich die einkommenden Werte dann unterscheiden, wenn der Wert in beiden Tabellen existiert.

mkinzler 16. Aug 2009 17:51

Re: Ausgabe der Daten 2er Tabellen statt einer
 
Durch Aliasing zudem brauchst du ja nur die Spalten abfragen, welche du benötigst.

SQL-Code:
Select
    t1.position as pos1, t2.position as pos2
...

youuu 16. Aug 2009 18:01

Re: Ausgabe der Daten 2er Tabellen statt einer
 
Naja das sind knapp 20-30 Werte, wird das dann nicht etwas lang und unübersichtlich?

mkinzler 16. Aug 2009 18:09

Re: Ausgabe der Daten 2er Tabellen statt einer
 
Brauchst du den alle?
Sonst würden die Spalten verschiedene Postfixes bekommen


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.
Seite 1 von 2  1 2      

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