Problem bei ausgabe von Ergebnissen bei MySQL



  • Huhu.

    Ich habe hier eine Datenbank, die einen Eintrag vorweist.

    Jetzt hab ich hier meine Maske mit den Daten. Wenn ich bei Kundennummer z.B. 1 eintippe, soll er alles das, was darunter gespeicher ist, in die entsprechenden Felder schreiben, die ich dafür schon vorbereitet habe.

    Habe das so versucht

    UpdateData(TRUE);
    MYSQL *conn;
    MYSQL_RES *result;
    MYSQL_ROW row;
    CString syntax;
    syntax.Format("SELECT * FROM kunden WHERE Kundennummer = '%s'",m_strKundennummer);
    mysql_query(conn, syntax);
    result = mysql_use_result(conn);
    row = mysql_fetch_row(result);
    m_strKundennummer = row[1];
    m_strMatchcode = row[1];
    UpdateData(FALSE);
    

    compilieren tut er ohne probs, aber wenn ich dann auf den button klicke, der den quelltext ausführt kommt prompt ne fehlermeldung

    jemand ne ahnung?



  • Zum einen wäre die Fehlermeldung interessant. 😉

    Zum anderen: Was für einen Datentyp hat die Kundennummer in der Datenbank. Eigentlich sind Zahlen gängiger als Strings. Wenn das eine Zahl ist, mach die einfachen Anführungsstriche weg.



  • der kommt mit einer standartfehlermeldung

    das ist dieses fenster mit "senden" "nicht senden"

    wenn ich dann auf Details klicke sagt er mir Access violation

    die ' hab ich schon weggelassen

    ist im CHAR Format

    nicht das optimale, aber nur erstmal zum ausprobieren



  • Hmm, leider habe ich von der MySQL API keine Ahnung. 😞

    Aber eines kommt mir fehlerhaft vor:

    MYSQL *conn;
    //...
    mysql_query(conn, syntax);
    

    Du deklarierst einen Zeiger und arbeitest ohne weitere Initialisierungen mit ihm - bist du sicher, dass das so sein muss / darf?



  • ja richtig

    moment



  • hab da jetzt noch

    conn = mysql_init(NULL);
    

    zwischen gehauen
    macht aber immer noch das gleiche

    ich möchte doch nur das ergebnis aus der DB in nem Textfeld angezeigt bekommen 😞



  • Ich glaube, du musst erstmal sagen, welche Datenbank du nutzen willst.
    In der Kommandozeile (die kann ich dann doch) wäre das

    use DATENBANKNAME;
    

    Ist das vielleicht der Parameter vom mysql_init? (Also statt NULL.) 🙂



  • oh man

    ich bin sooo stroh doof

    sorry, ganz einfacher fehler

    ich sollte vielleicht auch eine verbindung zur Datenbank herstellen

    dann klappt sowas auch

    tut mir leid

    klappt jetzt

    trotzdem danke



  • Grundsätzlich ist vielleicht noch zu empfehlen irgendwie die mysql_error()
    einzubauen, damit das Progi nicht jedesmal abschmiert. Nebenbei wird auch noch der Fehler genauer lokalisiert und kann ausgegeben werden.



  • SChau mal in die Linux-FAQ. Da gibt es SOurce der Funktioniert


Anmelden zum Antworten