TADODataSet



  • Guten Morgen,
    weiß zufällig jemand wie man in einem Dataset eine Zeile, eins nach vorne oder nach hinten schiebt ?
    Und wenn ich die Funktionen First() oder Next() benutze möchte ich gerne das mir nicht immer der Cursor mitspringt.
    Danke schonmal 😃



  • volvic schrieb:

    Guten Morgen,
    ...
    Und wenn ich die Funktionen First() oder Next() benutze möchte ich gerne das mir nicht immer der Cursor mitspringt.
    Danke schonmal 😃

    Also ich baue mir da immer eine eingebettete Klasse, die die DataSource des Controls im RAII-Stil bei Bewegungen abklemmnt

    private:	// Anwender-Deklarationen
    
        template<typename T>
        class ListSuppressDataSource  // as RAII: Scrollen des Grids beim Befüllen unterdrücken
        {
            T t;
            TDataSource* src;
    
        public:
    
            ListSuppressDataSource(T& t_) : t(t_), src(t_->DataSource) { t->DataSource = 0; }
           ~ListSuppressDataSource() { t->DataSource = src; }
        };
    

    und dann in der Verwendung

    //===========================================================================
    //
    // Terminliste befüllen
    //
    //===========================================================================
    void TufrmWIImport::FillList()
    {
    
        cdsD->Close();
        cdsD->Open();
    
        ListSuppressDataSource<TDBGrid*> lss(grdD);
    
        typedef set<ProjectImportMerger::Termin>::const_iterator dittype;
    
        String currentAU;
        bool   currentChanged;
    
        for (dittype it = dates.begin(); it != dates.end(); ++it) {
    
    //usw
    

Anmelden zum Antworten