Announcement

Collapse
No announcement yet.

Datensätze auswählen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datensätze auswählen

    Hallo, ich habe mit Hilfe einer RadioGroup und SQL eine Datenmenge selektiert. Nun möchte ich mit Hilfe einer zweiten RadioGroup, die zuvor selektierte Datenmenge nochmal selektieren. Ich möchte aber die Datenmenge nicht in einem Schritt selektieren. Die erste selektierte Datenmenge soll also beibehalten werden, und nicht von der neuen Selektion ausgeschaltet werden. Geht das?. Danke für Hilfe. Gruss ph.

  • #2
    Hallo,

    ja - das geht, ohne die SELECT-Abfrage nochmals ausführen zu müssen. Allerdings hängen die Implementierungs-Details davon ab, ob TClientDataSet, TBDEClientDataSet, TIBClientDataSet oder TADODataSet bzw. das RecordSet-Objekt genutzt wird. Bei der Frage fehlt also zum einen die verwendete Datenbank und zum anderen die verwendete Zugriffskomponete

    Comment


    • #3
      Hallo, mit einer Paradox7-Datenbank, Delphi5 so:

      Query4.SQL.Add('SELECT * FROM Sin_ErGeb.db');

      Query4.SQL.Add('WHERE Mannklasse LIKE :Klasse');

      Query4.ParamByName('Klasse').AsString

      :=RadioGroup1.Items[RadioGroup1.ItemIndex];

      Query4.Open;

      Nun soll diese Datenmenge beibehalten werden damit ich diese, wenn ich möchte, nach dem anderen Kriterium selektiert wird. In einer neuen Query. Danke

      Comment


      • #4
        Hallo,

        bei Paradox und TQuery wird nichts anderes übrigbleiben, als lokal im Programm zusätzlich zu filtern. In der Delphi-Hilfe ist dazu unter <b>OnFilterRecord</b> ein Beispiel.

        Wenn das zusätzliche Filtern jedoch über SQL erfolgen soll, ist der Zwischenschritt über eine temporäre Hilfstabelle notwendig. Der Aufruf der IDAPI-Funktion <b>DBIMakePermanent</b> speichert dazu die Ergebnismange der ersten SELECT-Abfrage als temp. Tabelle ab (dazu muss die Unit <b>BDE</b> eingebunden werden):
        <pre>
        Query1.Open;
        DBIMakePermanent(Query1.Handle, 'c:\tmp\tmptbl',True);
        Query1.Close;
        </pre>
        Eine 2. TQuery-Instanz kann nun diese Tabelle über SELECT abfragen und dort andere WHERE-Kriterien verwenden.
        &#10

        Comment

        Working...
        X