![]() |
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 |
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) |
Re: SQL-Befehle schachteln
Zitat:
Zitat:
|
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:
2) Ein UNION-Select der Tabellen:
Select *
From T_Table1 a, T_Table2 b Where a.[Schlüssel Tab1] = b.[Schlüssel Tab2] 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:
Schreibe mal was du genau vorhast...
SELECT 'Table1' TableName,
a.* FROM T_Table1 a UNION SELECT 'Table2' TableName, b.* FROM T_Table2 b |
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).
|
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