AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Befehle schachteln
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Befehle schachteln

Ein Thema von ims · begonnen am 19. Dez 2003 · letzter Beitrag vom 19. Dez 2003
Antwort Antwort
ims

Registriert seit: 23. Jul 2003
Ort: Sirnach
157 Beiträge
 
Delphi 7 Professional
 
#1

SQL-Befehle schachteln

  Alt 19. Dez 2003, 08:58
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?

andere lösungsvorschläge sind auch willkommen.

gruss, ims
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#2

Re: SQL-Befehle schachteln

  Alt 19. Dez 2003, 09:02
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)
  Mit Zitat antworten Zitat
ims

Registriert seit: 23. Jul 2003
Ort: Sirnach
157 Beiträge
 
Delphi 7 Professional
 
#3

Re: SQL-Befehle schachteln

  Alt 19. Dez 2003, 09:07
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 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.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: SQL-Befehle schachteln

  Alt 19. Dez 2003, 10:15
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...
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: SQL-Befehle schachteln

  Alt 19. Dez 2003, 10:25
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).
Gruß
Hansa
  Mit Zitat antworten Zitat
ims

Registriert seit: 23. Jul 2003
Ort: Sirnach
157 Beiträge
 
Delphi 7 Professional
 
#6

Re: SQL-Befehle schachteln

  Alt 19. Dez 2003, 10:34
danke euch, habs mit einem UNION gelöst.

gruss, ims
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 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