select aus DB



  • Hi @ all !!

    Hat jemand ein Idee warum folgenden Sleect nicht ausführen kann ???

    sql = "select max(farb_id) from kopf_daten";
    
        try 
        {
            db.Open(CRecordset::snapshot, sql);
            if(db.IsEOF())
            {
                AfxMessageBox("Konnte die letzte ID nicht auslesen", MB_ICONEXCLAMATION);
                return;
            }
            else
                {   
                    int b;
                    b = db.m_FARB_ID;
                    farbid.Format("%d", b);
                }
            db.Close();             
        }
        catch(CDBException* e)
        {
            AfxMessageBox( e->m_strError, MB_ICONEXCLAMATION );
            return;
        }
    

    benutze INterbase (ODBC)

    Thx



  • Was ist max(farb_id)? Soll das die SQL verstehen?



  • @Rene G

    Max bedeutet in SQL Sprache das der Maximale Wert des Attributes ermittelt wird.
    in diesem Falle wird der maximale Wert der in der DB unter farb_id eingetragen ist zurückgeliefert. 🙄

    [ Dieser Beitrag wurde am 16.05.2003 um 11:25 Uhr von DaDaywalker editiert. ]



  • Ups, hab ich mit dem Type farbid von farbid.Format verwechselt ;), is wohl Freitag 😃



  • OK, habs gefunden !!

    Wenn man select max(farb_id) ausführt, wird das Ergebnis in der Spalte MAX angezeigt. Tatsächlich besitzt aber die Tabelle kein Feld "Max", in meiner Set Klasse habe ich es auch nicht drin !!!

    Die Frage bleibt jedoch. Wie kann ich es mit der Set Klasse auslesen ?????

    Thx



  • Du solltest als erstes mal die SetKlasse zeigen.
    🙄
    Als nächstes gibt es mehrere Varianten um dein Problem zu lösen SQL kann viel.
    Dazu wäre es ebenfalls günstig wenn du das Design der DB oder zumindest die Tabelle samt Attributen hier posten würdest. Dann könnte ich dir bestimmt helfen.

    Gruss

    NACHTRAG:

    ALSO ich hab erstmal rein Designtechnische Einwände gegen deine Datenbankstruktur obwohl ich sie nicht kenne aber der Code sagt mir was.
    Solltest du irgendwann mal in den Genuss kommen sehr komplexe Aufgaben zu lösen, so wirst du mit deiner Variante sehr auf die Nase fallen. Üblich ist es die Tabellen so zu benennen (wobei sich die Geister darüber auch wieder streiten können) TBL(name der Tabelle in kleinbuchstaben) -> TBLbeispiel;
    Alle Attribute werden dann wie folgt benannt
    ->TBLbeispiel_ID
    ->TBLbeispiel_Name
    ->TBLbeispiel_Ort
    Solltest du nämlich mal noch mit Beziehungen arbeiten müssen und dann in Relationen sprich Tabellen noch Foreign Keys einbauen müssen dann wirds irgendwann kritisch. Denn dann blickst du bald nicht mehr durch woher ein Schlüssel kommt.
    Das aber nur als kleinen Tip und nicht als Kritik. So dann poste mal dads Zeug und dann backen wir den Kuchen.

    Gruss 🕶

    [ Dieser Beitrag wurde am 16.05.2003 um 13:56 Uhr von DaDaywalker editiert. ]



  • Versuchs mal mit
    select max(farb_id) AS hiereinfeldausdeineDBCLASS from kopf_daten


Anmelden zum Antworten