Einzelner Wert mit ADO-FieldByName



  • Salü

    Habe folgendes Problem:
    Möchte aus einer Datenbank den Eintrag mit der höchsten ID auslesen, leider scheitert dies jedoch immer an der Fehlermeldung: Field 'idoventrace_RO400FC' not found bei Verwendung von:

    Form1->ADOQuery1->FieldByName("idoventrace_RO400FC")
    

    Liegt anscheinend daran, dass die Spaltennamen nicht mit zurückgegeben werden.

    Darum habe ich extra abgeändert:

    Form1->ADOQuery1->SQL->Add("SELECT MAX(`idoventrace_RO400FC`) as `idoventrace_RO400FC` FROM `oventrace_ro400fc`");
    

    Als SQL-Query im Admintool funktionert das. Wie muss mann das mit ADO integrieren? Falls das jemand weiss, oder eine entsprechende Doku verlinken kann: Besten Dank!



  • Ich verstehe ehrlich gesagt nicht was du willst?!?

    Die beiden Codezeilen sind dermaßen aus dem Kontext gerissen, dass man nicht mal vermuten kann, was Du falsch machst.
    Ich weiß nicht, wie es beim CG2009 ist, aber beim BCB6 ist die Hilfe zu diesem Thema sehr ergiebig. Schon mal geschaut?

    Grüße Joe



  • SELECT * FROM tabelle ORDER BY id DESC;

    das ist - ganz grob - das SQL Statement. wenn du jetzt die ID aus dem ersten Satz nimmst, hast du was du brauchst.

    grüssle 🙂
    :schland: :schland:



  • SELECT MAX ist schon der richtige Weg. Warum sollte man alle Datensätze anfordern und die dann auch noch sortieren, nur um an den höchsten Wert zu gelangen? Völliger Overkill.

    Ich hoffe mal, dass damit nicht der nächste freie Wert ermittelt werden soll. Das geht in einer Multi-User-Umgebung mit Sicherheit früher oder später schief.


Log in to reply