Updateproblem bei DBGrid-Daten



  • vielleicht im OnDataChange vom Grid?



  • sorry, mein natürlich von der source.



  • ja schon richtig
    das OnDataChange bediene ich schon selbst, aber trotzdem (zusätzlich)
    versucht "irgendwer" die Daten zu bearbeiten, was dann bei dem unsichtbaren schief geht !!??
    😕



  • kannst du das OnDataChange und den Abschnitt in dem du die felder ausblendest mal posten, nur mit der beschreibung kann ich nicht mehr weiter



  • klar , ist zwar "ganz normaler Code" aber warum nicht ...

    void __fastcall TmyForm::ReInitGrids()
    {
        // -- Ausblenden der mit "_" gekenzeichneten Feldern 
        for (int i = 0; i < PosGrid->FieldCount;i++)
        {
            if (PosGrid->Fields[i]->FieldName.Pos("_") == 1)
            {
                PosGrid->Fields [i]->Visible = false;
            }
        }
    }
    

    Im OnDataChange steht nichts ausser dem Absetzen eines SQL-UPDATE-Befehls
    .. und dabei geht ja auch nichts schief
    😕



  • Fields ist ein Feld in der db, mit deinem aufruf sagst du dem grid, das es die daten nicht mehr sehen soll, du brauchst aber einen aufruf mit dem das feld nicht angezeigt wird,
    nochmal drüber nachdenken 😉



  • Schau in der Hilfe mal hier: TDBGridColumns



  • bzw. hier: TDBGrid\Eigenschaften\Collumns



  • Ja soweit ist mir das jetzt klar was passiert..

    aber es sollte doch auch eine Lösung geben, die Spalte auszublenden ohne die Datenstruktur darunter ändern zu müssen oder ??!!

    😕



  • nach etwas weiterer Untersuchung :
    es hat nichts (mehr) mit dem Visible zu tun...

    die Fehlermeldung (Error in Where Klausel... Spalte xxx nicht gefunden) kommt
    wenn der Datensatz editiert wird und dann zum nächsten gesprunge wird !
    Die Änderung wird sauber abgespeichert (mit der erwähnten UPDATE-Fkt), aber danach passiert noch irgendwas (Refresh ??) wo er plötzlich seine eigenen Spalten nicht mehr kennt ??
    😕



  • Fields ist ein Feld in der db, mit deinem aufruf sagst du dem grid, das es die daten nicht mehr sehen soll, du brauchst aber einen aufruf mit dem das feld nicht angezeigt wird,
    nochmal drüber nachdenken 😉

    @DBler: die Aussage ist einfach falsch .. 😉 ich habe noch einige Untersuchungen in dieser Richtung unternommen, die Felder sind natürlich noch vorhanden nur eben ausgeblendet... der eigentliche Grund liegt in der ALIAS - Abfrage der Queries (s. anderen Thread) und hat nichts mit visible zu tun...

    aber danke für Deine Unterstützung, war ein interessantes Problemchen..
    🙂
    Wilfrid


Anmelden zum Antworten