Karin: recordset (nochmal)

Hallo

ich habe gestern schon mal gefragt, hier nochmal die Frage, aber etwas genauer!
(hoffe ich)

Also, ich habe zwei recordsets, die aus zwei verschiedenen DB-Abfragen erstellt
werden. bzw. die zweite Abfrage laeuft nur, wenn eine dritte Abfrage ein betsimmtes
Ergebnis zurueckgebracht hat.
Beim Darstellen wird immer das erste RS dargestellt und in gewissen Faellen
wird dann zusaetzlich das zweite dargestellt.

Das Problem ist nun, dass das zweite RS Eintraege enthalten kann, die im
ersten auch schon vorkommen und deshalb dann nicht dargestellt werden sollen.
Ich muss also irgendwie die doppelten Eintraege herausfiltern!
Wie mache ich das am besten? (in die Abrage moechte ich das lieber nicht
verpacken, weil die eh schon sehr langsam ist)

Hat jemand 'ne tolle Idee?

Dank&Gruss
Karin

  1. Hi, hallo

    ich hatte dir gestern schon auf deine Frage geantwortet.

    Die beste und eleganteste Lösung ist es mit eine Datenbankinternen Prozedur (Stored Procedure = Access Abfrage) zu arbeiten.

    Ansonsten ein etwas kranker weg:

    ein Dictionary-Objekt anlegen
    beide Recordsets mit .getString oder .getRows in Arrays umformen, die nicht Duplikatsfelder (z.b. Datensatz-ID) aus dem Array entfernen, aus dem verbleibenden Rest einen String machen mit Join(array,delimiter) und im ersten Durchlauf (1. Recordset) jeweils in das Dictionary eintragen

    key = datenstring
    value = datensatz_id

    und beim 2. Durchlauf (2.Recordset) die Datensätze genauso umformen und überprüfen ob der string aus den Daten als Key schon mal im Dictionary vorkommt, wenn nicht dann eintragen. ansonsten ignorieren.

    da ist die Variante mit der Abfrage wesentlich

    • weniger programmieraufwändig
    • performanter

    Tschau, tschüß,
    Frank