Datenbankabfragen



  • Hallo,
    Ich möchte in einem Recordset eine distinct-Abfrage ausführen.
    Also die SQL-Abfrage soll so aussehen:
    select distinct abc from testtabelle;

    Wie bekomme ich nun das distinct in die Tabellenabfrage (GetDefaultSQL???)



  • Ich würde einfach einen View machen. 😃
    Mit CRecordset geht es auch, es wurde hier auch schon beschrieben, denke ich - aber mit der klemmenden Suche wird es schwierig. 😞



  • as_ow schrieb:

    Wie bekomme ich nun das distinct in die Tabellenabfrage (GetDefaultSQL???)

    ➡ In GetDefaultSQL(...) reinschreiben und ausprobieren, ob es klappt.

    Ansonsten kannst du es auch in m_strFilter schreiben:
    Tabelle.m_strFilter = "SELECT DISTINCT Feld FROM Tabelle";

    ...und dann Open() oder Requery().



  • im Filter würde ich abraten, da dieser STring nach der WHERE-KLausel angehängt wird ...



  • Du leitest doch von CRecordset ab. Gebe Dieser Ableitung einen boolsches Flag hinzu, z. B. m_bDistinct, und werde es in GetDefaultSQL aus. Gib dort einmal das SQL-Statement mit oder ohne DISTINCT an ...



  • Hallo,

    Lösung ist ganz einfach, hatte nur noch einen ungültigen Wert für
    m_strSort gesetzt 😉

    Der wert wird in die rfx-Variable eingebunden:

    void CRSet::DoFieldExchange(CFieldExchange* pFX)
    
    {
    
                //{{AFX_FIELD_MAP(CRSet)
    
                pFX->SetFieldType(CFieldExchange::outputColumn);
    
                RFX_Text(pFX, _T("DISTINCT TEAM"), m_TEAM);
    
                //}}AFX_FIELD_MAP
    
    }
    

    Dieser Teil wird hinter das Select eingefügt. Über m_strFilter und GetDefaultSQL funktioniert es übrigens nicht.

    Trotzdem Danke für die Antworten 😋


Anmelden zum Antworten