Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Befehle schachteln (https://www.delphipraxis.net/13470-sql-befehle-schachteln.html)

ims 19. Dez 2003 08:58


SQL-Befehle schachteln
 
hi

ich habe diverse checkboxen. wenn eine davon markiert wird, löst das einen sql befehl (über ADO, adodataset) aus und zeigt das resultat im bdgrid an. soweit kein problem. nun möchte ich aber kombinieren. also wenn checkbox 1+2 markiert soll er beide befehle ausführen.

Problem: ein dbgrid kann nur daten anzeigen, keine hinzugefügt bekommen, oder? ich kann also nicht erst den einen befehl ausführen und dann den andern, dann verschwinden ja die daten aus der ersten abfrage.

mein lösungsansatz: den sql befehl schachteln. also zuerst 'Select * From T_Table1' und dann 'Select * From T_Table2'

ich kriegs allerdings nicht auf die reihe wie ich den schachteln muss.
geht das überhaupt? :gruebel:

andere lösungsvorschläge sind auch willkommen.

gruss, ims

trifid 19. Dez 2003 09:02

Re: SQL-Befehle schachteln
 
Hallo,

entweder mit einem Button der dann alle Checkbox-en abfragt,
einen SQL-Befehl zur Laufzeit erstellt und
dann ins DataSet schieben

oder mit einen SQL-Kommando namens UNION das (wenn beide SELECT von tbl1 und tbl2 die gleiche Ergebnis-Struktur aufweisen)

ims 19. Dez 2003 09:07

Re: SQL-Befehle schachteln
 
Zitat:

Zitat von trifid
Hallo,

entweder mit einem Button der dann alle Checkbox-en abfragt,
einen SQL-Befehl zur Laufzeit erstellt und
dann ins DataSet schieben

das war meine idee, aber WIE muss ich den sql befehl zusammenstellen, welche befehle... geht das mit Anweisung1 AND Anweisung2... da blick ich nicht durch.

Zitat:

Zitat von trifid
oder mit einen SQL-Kommando namens UNION das (wenn beide SELECT von tbl1 und tbl2 die gleiche Ergebnis-Struktur aufweisen)

guck ich mir gleich mal an.

Robert_G 19. Dez 2003 10:15

Re: SQL-Befehle schachteln
 
Du hast da mehrere Möglichkeiten:
1)Du kannst dir alle Spalten beider Tabellen nebeneinander anzeigen lassen (im Bsp. gelinkt über ein gemeinsames Schlüsselfeld):
SQL-Code:
Select *
From  T_Table1 a,
       T_Table2 b
Where a.[Schlüssel Tab1] = b.[Schlüssel Tab2]
2) Ein UNION-Select der Tabellen:
Dabei ist auf die Spaltenreihefolge zu achten, Tabelle 2 wird unter Tabelle 1 angefügt.
Deshalb dürfen nur Felder des gleichen Types "übereinander" liegen.
SQL-Code:
SELECT 'Table1' TableName,
       a.*
FROM  T_Table1 a
UNION
SELECT 'Table2' TableName,
       b.*
FROM  T_Table2 b
Schreibe mal was du genau vorhast...

Hansa 19. Dez 2003 10:25

Re: SQL-Befehle schachteln
 
Für so etwas wäre ein View in Betracht zu ziehen. Damit geht das auf alle Fälle und auch recht einfach. Allerdings hege ich die Vermutung, daß ein View eventuell mit ADO nicht geht (wie so vieles).

ims 19. Dez 2003 10:34

Re: SQL-Befehle schachteln
 
danke euch, habs mit einem UNION gelöst.

gruss, ims


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz