SQL Query für Access UND Oracle

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Ich würd' so rangehen:

    Bau Dir mit Hilfe des Designers ein typisiertes Dataset für die Access-mdb mit den Tabellen, die Du brauchst.
    Dann fügst Du, ebenfalls im Designer, einen Tableadapter hinzu, der auf die Oracle-DB verweist. in diesem TA konfigurierst Du die Felder aus den Tabellen der Oracle-DB die Du brauchst (Denk' an den Primär-Schlüssel).
    Im Typ-Dataset kannst Du dann Relations und Abfragen erstellen, die Du benötigst.
    Vielleicht geht das auch unter Verwendung der Helper von @ErfinderDesRades, hab ich noch nicht ausprobiert.

    Die von mir beschriebene Lösung klappt bei mir jedenfalls mit Access und SQL Server Express.
    Danke, das ist ein Ansatz den ich auch schon ins Auge gefasst habe aber eigentlich vermeiden wollte.

    Weiters habe ich auch schon die Access-Daten in eine DataTable gelesen und davon Queries auf Oracle gemacht und umgekehrt aber diese Abfragen dauern natürlich ewig, weil für jeden Datensatz ein Query abgesetzt werden muss. :thumbdown:
    Klar, das dauert ewig.
    Bei TypDataset liest Du am Anfang doch alle Daten ein. Alle Abfragen geschehen dann im Speicher, und das geht ... schnell.
    z.B.:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. Me.AccessTableAdapter.Fill(Me.MeinKombiniertesDataSet.AccessTabelle)
    3. Me.OracleTableAdapter.Fill(Me.MeinKombiniertesDataSet.OracleTabelle)
    4. End Sub

    petaod schrieb:

    Du kannst die Oracle-Tabelle in Access als Remote-Tabelle integrieren, dann kannst du sie wie eine Access-interne Tabelle ansprechen.

    Das hat us4711 schon oben vorgeschlagen. Das ist mein Last-Exit-Szenario, das ich eigentlich vermeiden wollte.

    Nachfolgendes funktioniert jedenfalls leider nicht:

    SQL-Abfrage

    1. select o.Username
    2. from TabO as o
    3. where not exists (
    4. select l.Username
    5. from [mdbDatei.mdb].TabL as l
    6. )
    Ne, ne.
    Einbinden in Access als Remote-Tabelle ist was anderes, als in Dataset einbinden.
    Schau Dir mal in Access selbst diesen Begriff an.

    @petaod
    Gute Idee, verlagert die Aufgabe weiter an die Quelle ...
    Genau.
    Ich meinte damit "Externe Daten ... ODBC-Datenbank ... verknüpfte Tabelle erstellen"

    Das funktioniert allerdings nur im Frontend.
    Falls du dein Access in Frontend/Backend gesplittet hast (und aufs Backend zugreifst) geht das nicht.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --