AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TIBCQuery Join Abfragen

Ein Thema von Int3g3r · begonnen am 4. Sep 2019 · letzter Beitrag vom 4. Sep 2019
Antwort Antwort
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#1

TIBCQuery Join Abfragen

  Alt 4. Sep 2019, 09:49
Guten Morgen,

Ich verstehe die TIBCQuery Komponente noch nicht so ganz.
Wie lässt sich die TIBCQuery mit JOINS verwenden ?

Code:
1) select * from fahrt
Hier lässt sich der SQL-Befehl ohne weiteres in das TIBCQuery eintragen. Per Fields-Editor lassen sich alle Felder hinzufügen. Dies funktioniert soweit.
Code:
2) select * from fahrt WHERE id = (variable)
Da ich eine Variable verwende kann ich den SQL-Befehl nicht direkt in die TIBCQuery eintragen.
Somit mache ich dies in Delphi:
Delphi-Quellcode:
qryFahrt.Close;
qryFahrt.SQL.Text := 'select * from fahrt WHERE id = '+ variable;
qryFahrt.Open;
Hier lassen sich die Felder noch per Field-Editor hinzufügen wenn ich WHERE klausel weglasse. Der SQL Generator lässt sich hier auch noch verwenden da ich nur eine Tabelle habe.
Somit funktioniert auch dieses.

Code:
3)select * from fahrt inner join auftrag on id = id where auftrag.id = (variable)
Bei einem JOIN komme ich nicht mehr mit. Das Hinzufügen der Felder Funktioniert noch wenn ich die WHERE klausel weglasse. Danach aber habe ich folgendes Problem:

Ich habe zwei Tabellen somit kann ich nicht mehr per SQL Generator den SQL Code generieren lassen der für das Insert,Update,Delete,Lock,Refresh... zuständig ist.
Es lässt sich halt nur eine Tabelle selektieren.

Kann mir jemand ein Beispiel machen wie ich Joins mit TIBCQuery verwende ?


Freundliche Grüsse
Int3g3r
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
516 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TIBCQuery Join Abfragen

  Alt 4. Sep 2019, 09:58
Das mit den Variablen ist so...

Was Du suchst ist das folgende für den IBCQuery1.SQL.Text:
Zitat:
select * from fahrt WHERE id = :Id
und dann im Delphi Code schreibst du sowas wie

Zitat:
IBCQuery1.ParamByName('Id').AsInteger := MyId;
IBCQuery1.Open;
Das IBCQuery ist ja kein Query Builder. von Daher solltest Du die Joins einfach per Hand schreiben und dann reinkopieren.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.948 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: TIBCQuery Join Abfragen

  Alt 4. Sep 2019, 10:09
Ich habe zwei Tabellen somit kann ich nicht mehr per SQL Generator den SQL Code generieren lassen der für das Insert,Update,Delete,Lock,Refresh... zuständig ist.
Es lässt sich halt nur eine Tabelle selektieren.
Du wirst kaum allgemeine Mechanismen finden, die ein Update (Insert, Delete) auf mehr als eine Tabelle machen.
Stell Dir vor, dass Dein Join vor allem eine sachgerechte Darstellung von Daten liefert. Häufig eine Haupttabelle mit ein oder mehreren Nachschlagewerten aus Hilfstabellen. Auch wenn die Daten als Join gelesen werden, erfolgt das Update immer nur auf die Haupttabelle. Das sollte ein Generator eigentlich auch berücksichtigen (ich kenne die IB Komponenten nich). Evtl. müsstest Du nachsehen, ob Dein Bedarf tatsächlich nur ein Problem von Nachschlagetabellen ist, hier ist dann evtl. der Aufbau / Anwendung der DBLookup Komponenten zu korregieren.

Es gibt zusätzlich verschiedene, komplexere Möglichkeiten, die meist DB spezifisch sind.
Man kann z.B. Storedprocedures erstellen, die für das "gleichzeitige" Update mehrerer Tabellen zuständig sind. Diese werden aber kaum durch einen Generator aufgerufen, sondern müssen natürlich explizit in die Updatestatement property eingetragen werden.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
516 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TIBCQuery Join Abfragen

  Alt 4. Sep 2019, 10:52
Es gibt auch noch doch bestimmt ein IBCUpdateSQL (Ich denke mal, Du nutzt die DevArt IB Components), dort kannst Du dich mal damit beschäftigen, wie man ein Update mit Table Joins machen kann. Auch mal in die Beispiele schauen die DevArt da mitliefert.
  Mit Zitat antworten Zitat
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: TIBCQuery Join Abfragen

  Alt 4. Sep 2019, 10:55
Vielen Dank euch beiden für die Hilfe.


Zitat:
select * from fahrt WHERE id = :Id
IBCQuery1.ParamByName('Id').AsInteger := MyId;
IBCQuery1.Open;
Das Habe ich gesucht.
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
505 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TIBCQuery Join Abfragen

  Alt 4. Sep 2019, 11:18
TIBCQuery kann die Insert/Update/Delete-Sql auch bei Abfragen über mehrere Tabellen automatisch erzeugen, zumindest für eine Tabelle. Muss man dann bei SQL-Generator auswählen.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 21:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf