AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tquery variabel die zweite

Ein Thema von fl63 · begonnen am 26. Mär 2012 · letzter Beitrag vom 27. Mär 2012
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 13:18
http://www.delphipraxis.net/167343-a...-new-post.html
Markus Kinzler
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#12

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 13:19
Hätte ich auch vorgeschlagen. Allerdings sollte man vielleicht dazusagen, dass Anzahl und Typ der Felder dabei exakt übereinstimmen müssen. Hat eine der beiden Tabellen weniger Felder, muss man dann eben Konstanten einfügen.
Da der Threadersteller mit ausreichend Informationen hinter dem Berg hält, wie z.B.
[...] Ich möchte zwei unabhängige Tabellen nacheinander Abfragen und das Ergebnis in einem DBGrid darstellen.
könnte man hier vorsorglich alles bekannte Wissen über UNION noch erläutern.

Aber dafür gibt es Google.

Sinnvoll wäre für den Threadersteller meiner Meinung erst einmal die Absolvierung eines fundierten SQL-Basiskurs.
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#13

AW: Tquery variabel mit Firebird

  Alt 26. Mär 2012, 13:20
... = 'then Combobox1.Text := ' Tabelle1 union Tabelle2'; bringt auch nur Fehler 104.

@DeddyH

Tabellen haben identische Struktur.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 13:24
Dann bau doch erst einmal außerhalb von Delphi einen syntaktisch korrekten SQL-Befehl zusammen, der das gewünschte Ergebnis liefert. Erst wenn der funktioniert, macht es IMHO Sinn, ihn dynamisch zusammenzustellen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#15

AW: Tquery variabel mit Firebird

  Alt 26. Mär 2012, 13:36
Dann bau doch erst einmal außerhalb von Delphi einen syntaktisch korrekten SQL-Befehl zusammen, der das gewünschte Ergebnis liefert. Erst wenn der funktioniert, macht es IMHO Sinn, ihn dynamisch zusammenzustellen.
Werd ich machen, Danke.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 14:16
Wenn ich mir den den ersten Beitrag ansehe scheint doch ungefähr dies hier gewünscht:

Delphi-Quellcode:
const
  SQLTEXT1='Select irgendwas from tabelle1 where diese Bedingung';
  SQLTEXT2='Select irgendwas from tabelle2 where diese Bedingung';

begin
  myquery.close;
  if bedingung then
    myquery.sql.text:=SQLTEXT1
  else
    myquery.sql.text:=SQLTEXT2;
  ...
Wenn die Dynamik über den Inhalt einer Combobox kommt, dann habe ich ein sehr ungutes Gefühl dabei.
(SQL injection)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#17

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 16:36
Wenn ich mir den den ersten Beitrag ansehe scheint doch ungefähr dies hier gewünscht:

[DELPHI]const
SQLTEXT1='Select irgendwas from tabelle1 where diese Bedingung';
SQLTEXT2='Select irgendwas from tabelle2 where diese Bedingung';
Nein, ungefähr so etwas:
Delphi-Quellcode:
SQl.Text := 'select * from tabelle1 und tabelle2 where feld1....
// wobei ..tabelle1 und tabe... ein einschließendes und darstellen soll
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 16:40
Aber ohne JOIN, oder? Da bietet sich wie gesagt die UNION an.
SQL-Code:
SELECT Feld1, Feld2, Feld3, ... FROM Tabelle1
UNION ALL
SELECT Feld1, Feld2, Feld3, ... FROM Tabelle2
Das soll jetzt nur eine grobe Orientierung sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#19

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 17:30
Ich habe 2 Tabellen in einer Firebird Datenbank.
Sind die beiden Tabellen von gleicher Feldstruktur?
Falls ja, liegt fast immer ein fehlerhaftes Datenbankdesign vor.
Dann gibt es zwei Möglichkeiten:
a.) Datenbankdesign verbessern und plötzlich werden Abfragen, die vorher ein Problem dargestellt haben ganz einfach
b.) weitermachen wie bisher

Hier noch ein Beispiel für mangelhaftes Datenbankdesign
Code:
Tabelle Frauen
==================================================================
IdGirl| Vorname | Nachname | Geburtstag | PLZ | Ort | Geburtsname

Tabelle Maenner
==================================================================
IdBoy| Vorname | Nachname | Geburtstag | PLZ | Ort
Das Beispiel ist natürlich eine klare Fehlkonstruktion.
Selbst wenn Männer üblicherweise keinen abweichenden Geburtsnamen haben (Ausnahmen bestätigen die Regel) sollte doch klar sein, dass alle Daten in eine gemeinsame Tabelle gehören
Code:
Tabelle Personen
=================================================================================
IdPerson | Vorname | Nachname | Geburtstag | PLZ | Ort | Geschlecht |Geburtsname
Andreas
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#20

AW: Tquery variabel die zweite

  Alt 26. Mär 2012, 18:08
Und hier die funktionierende Lösung:

Delphi-Quellcode:
SQL.Add('Select * from tabelle1 union all select * from tabelle2 where feld001 Like :text1 ');
SQL.Add('And Upper (feld002) Like Upper (:text2) ');
Diese zwei Zeilen in die Vergleichszeilen vom Quelltext Beitrag 1 kopiert und es funktioniert.

Danke an alle, FL63
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:05 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