Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Änderungen anzeigen nach Update mit AdoCommand (https://www.delphipraxis.net/85221-aenderungen-anzeigen-nach-update-mit-adocommand.html)

Ralf Stehle 27. Jan 2007 15:41

Datenbank: Access • Version: 2000 • Zugriff über: ADO

Änderungen anzeigen nach Update mit AdoCommand
 
Nach einem Update eines Datensatzes mit AdoCommand werden die Änderungen leider nicht sichtbar. Ich habe das Problem nur lösen können, indem ich die komplette Datenbankverbindung beende und neu aufbaue. Das müsste doch auch einfacher gehen?

Der benutzte Delphi-Code lautet:
Delphi-Quellcode:
if (AdoMITGLIEDER.State in [dsEdit, dsInsert]) then AdoMITGLIEDER.Post;

    DM.ADOCommand1.CommandType:=cmdText;
    DM.ADOCommand1.CommandText:=
      'UPDATE MITGLIEDER SET BEITRAG = True WHERE MITGLIEDSNR = ' + DbEdit1.Text;
    DM.ADOCommand1.Execute;

    //Damit Änderungen sichtbar werden:
    pos := AdoMITGLIEDER.GetBookmark;

    DM.ADOConnection1.Connected := False;
    DM.ADOConnection1.Connected := True;
    AdoMITGLIEDER.Active := True;

    AdoMITGLIEDER.GotoBookmark(pos);
Für einen Tipp bin ich dankbar

Gruß Ralf

mkinzler 27. Jan 2007 15:48

Re: Änderungen anzeigen nach Update mit AdoCommand
 
Nimm TADOQuery diese hat eine .ReQuery-Methode

Ralf Stehle 27. Jan 2007 16:39

Re: Änderungen anzeigen nach Update mit AdoCommand
 
Vielen Dank. Ich benutze ein TAdoDataSet, das hat glücklicherweise ebenfalls diese Eigenschaft.

Eigentlich hätte ich das ja selbst herausfinden müssen, das nächste Mal schau ich mal genauer die Methoden des Objektes an

So funktioniert es jetzt sehr gut ohne sämtliche Datenbankverbindungen durch einen neuen Connect-Befehl zu verlieren, das Lesezeichen (Bookmark) wird aber doch noch benötigt:

Delphi-Quellcode:
    if (AdoMITGLIEDER.State in [dsEdit, dsInsert]) then AdoMITGLIEDER.Post;

    DM.ADOCommand1.CommandType:=cmdText;
    DM.ADOCommand1.CommandText:=
      'UPDATE MITGLIEDER SET BEITRAG = True WHERE MITGLIEDSNR = ' + DbEdit1.Text;
    DM.ADOCommand1.Execute;

    //Änderungen sichtbar machen:
    pos := AdoMITGLIEDER.GetBookmark;
    AdoMITGLIEDER.ReQuery;
    AdoMITGLIEDER.GotoBookmark(pos);


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz