Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Outer Join in Microsoft.Jet.OLEDB via ADO (https://www.delphipraxis.net/37897-outer-join-microsoft-jet-oledb-via-ado.html)

Bitworm 11. Jan 2005 23:01


Outer Join in Microsoft.Jet.OLEDB via ADO
 
Hi !

Ich habe eine mdb via o.g. Connection angesteuert und alles funktioniert toll. Da ich bisher mehr Erfahrungen im Bereich Oracle machen konnte, macht mir der outer join Probleme. Folgende Query will nicht
SQL-Code:
select TOP 25 fahrzeuge.* , standorte.* from fahrzeuge, standorte where standorte.OID *= fahrzeuge.StandortOID order by LetzterStatusZeitpunkt desc
Unter Oracle reicht es, ein (+) hinter das entsprechende Feld zu schreiben, aber irgendwie kriege ich das hier nicht hin. Lt. Tante Google sollte das mit dem *= klappen, geht aber nicht. Hat da jemand einen Rat für mich ?

Robert_G 11. Jan 2005 23:58

Re: Outer Join in Microsoft.Jet.OLEDB via ADO
 
Das (+) ist ein left bzw. right Join, wobei du es für jedes Feld einzeln defnieren kannst.
(Im Gegensatz zu diesem ollen JOIN-Kinder-SQL ;) )
Wenn ich mich nicht irre versteht Jet OUTER JOINS (halt dieses neue Kinder-SQL :mrgreen: )

Edit: Bullshit! Ich verwende diese Syntax nie, deshalb dachte ich ein OUTER JOIN soll einer Art "!=" entsprechen. :lol:
So sollte es gehen:
SQL-Code:
SELECT TOP 25
       Fahrzeuge.*
      ,Standorte.* 
FROM  Fahrzeuge LEFT JOIN Standorte
         ON Fahrzeuge.StandortOID = Standorte.OID

Nicht jede DB kann einen so hübschen, schnörkellosen SQL-Dialekt sprechen. :mrgreen:
SQL-Code:
SELECT Fahrzeuge.*
      ,Standorte.* 
FROM  Fahrzeuge
      ,Standorte
WHERE Fahrzeuge.StandortOID = Standorte.OID(+) and
       RowNum <= 25

Bitworm 12. Jan 2005 00:15

Re: Outer Join in Microsoft.Jet.OLEDB via ADO
 
@Robert_G

Funktioniert einwandfrei dank Deiner Hilfe :-D Thanx ! Anscheinend muss ich auf viele angenehmen und vertrauten Oracle-Spezialitäten verzichten :wall:

Robert_G 12. Jan 2005 00:32

Re: Outer Join in Microsoft.Jet.OLEDB via ADO
 
Den Schritt zu Jet kapiere ich aber wirklich nicht.
Wenn Oracle zu teuer ist, bekommt man für 1500€ die Multi User Lizenz für Caché. (ist btw ein verflucht flinkes Ding ;) )
Wenn es nix kosten soll gibt es immer noch PostGreSQL und FireBird. :)
PosGreSQL's pg/SQL sieht sogar fast wie Oracle's PL/SQL aus. :D

Bernhard Geyer 12. Jan 2005 07:21

Re: Outer Join in Microsoft.Jet.OLEDB via ADO
 
Wenn Du mehr mit Oracle und Delphi machen willst, so vergiss ADO/OLE DB.

Besorg dir lieber native Zugriffskomponenten (z. B. von Core Labs). Damit hast Du 100% die Features die Oracle bietet auch über die DB-Schnittstelle. Den ADO-Treiber von M$ für Oracle kann man nur als Machbarkeitsstudie betrachten als für ernsthafte Anwendungsentwicklung. Und ob Oracle noch vernünftige neue ADO-Treiber liefert ist auch mehr als fraglich.

Bitworm 12. Jan 2005 07:55

Re: Outer Join in Microsoft.Jet.OLEDB via ADO
 
Danke für die guten Tipps, aber das mit Oracle ist ein anderer Kunde und ein gaaaanz anderes Projekt mit ganz anderen Dimensionen. ADO / Jet ist unter Einbeziehung aller Kriterien und Anforderungen als die für dieses Projekt und für den Kunden beste Lösung ausgewählt worden, wobei vorher natürlich die auf dem Markt verfügbaren Alternativen in die Überlegungen mit einbezogen wurden.
Übrigens verwende ich für die Oracleanwendung die Komponenten Direct Oracle Access von Allround Automations. In Verbindung mit dem PL/SQL-Developer des gleichen Anbieters ist dieses Gespann meiner Meinung nach die Beste Alternative für einen Oraclezugriff.

Bernhard Geyer 12. Jan 2005 08:03

Re: Outer Join in Microsoft.Jet.OLEDB via ADO
 
Zitat:

Zitat von Bitworm
Jet ist unter Einbeziehung aller Kriterien und Anforderungen als die für dieses Projekt und für den Kunden beste Lösung

Dann spricht ja nichts dagegen. Es gibt jedoch einige Entwickler die eigentlich immer eine bestimmmte DB verwenden/vorschlagen, ohne sich um die Rahmenbedingungen Gedanken zu machen.

Zitat:

Zitat von Bitworm
Übrigens verwende ich für die Oracleanwendung die Komponenten Direct Oracle Access von Allround Automations. In Verbindung mit dem PL/SQL-Developer des gleichen Anbieters ist dieses Gespann meiner Meinung nach die Beste Alternative für einen Oraclezugriff.

Verwende ich selbst auch - kann aber nicht jedesmal alle Alternativen aufzählen :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 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