for schleife zählt nur bis 49 ????



  • Hi,

    ich mache aus der Datenbank eine Abfrage und ich bekomme als Ergebnis 1200 raus.
    Dann kommt eben die forschleife wo ich das ergebnis verwende und in der ausgabe zählt er nur bis 49.
    m_loglist ist eine Listcontrol Variable wo ich die Ergebnisse in einem Listfeld ausgebe.
    Als Ergebnis kommt raus: -->
    1200
    0
    1200
    1
    ....
    1200
    48
    1200
    49

    hier mal der code -->

    CString commando1 = "SELECT count(*) FROM test WHERE KdNr = 225";

    switch(h_rufnummern.sqlexecute(commando1))
    {
    case DB_COMMAND_ERROR:
    return -1;
    case DB_EMPTY_QUERY:
    h_rufnummern.free();
    break;
    case DB_SELECT_OK:
    m_loglist.AddString("Anzahl Nummern " + h_rufnummern.field[1]);

    for(i=0;i<=h_rufnummern.field[1];i++)
    {
    m_loglist.AddString(h_rufnummern.field[1]);
    CString buffer;
    buffer.Format("%i",i);
    m_loglist.AddString(buffer);
    }
    }

    Weiß jemand wieso?

    Danke



  • Deine Schleife nimmt das letzte ergebnis nicht das was du benötigst.

    Wenn ich das so richtig sehe.

    mfg
    cc



  • Hallo !

    Kann es sein, dass in h_rufnummern.field[1] ein String steht ?
    Dann vergleichst du einen int mit einem String (in der for-Schleife):
    i<=h_rufnummern.field[1]

    Tschüss



  • 1. Du brauchst kein free aufrufen wenn der QUERY EMPTY ist.
    Free braucht man auch nur aufrufen wenn man 2 SELECTS hintereinander mit dem gleichen Connect macht.
    Free wird Automatisch beim schließen des DB-Connects aufgerufen.

    2. Wie bereits gesagt kommen alles Results als CString zurück.
    also mach atoi(h_rufnummern.field[1])


Anmelden zum Antworten