![]() |
Datenbank: Access • Version: 2007 • Zugriff über: Delphi
TADO Table updaten mit Event
Hallo liebe Community !
Hoffe ich mache jetzt keinen doppelten Eintrag aber finde für mein Problem keine Lösung. Folgendes Problem: Habe mit TADOConnection eine Verbindung zu meiner Access Datenbank gemacht und hol mir dann die Daten in ein TDBGrid über eine TADOTable und einen TDataSource. Das funktioniert soweit ganz gut. Jetzt will ich aber, dass wenn ich Daten im TBDGrid ändere diese erst ab einem bestimmten Event (Button.OnClick) in die Datenbank eingetragen werden. Ist das überhaupt mit den TADO Komponenten möglich? Habe schon gelesen das TADO für direkten Zugriff genutzt wird trotzdem würde es mich interessieren ob es möglich ist. Mit freundlichen Grüßen Pilgi91 |
AW: TADO Table updaten mit Event
Hallo und Willkommen in der DP :dp:,
eine IMO recht elegante Möglichkeit wäre die Verwendung eines ClientDatasets. Einen zwar etwas älteren, aber nicht schlechten (soweit ich das nach einem schnellen Überfliegen beurteilen kann) Artikel dazu findest Du hier: ![]() |
AW: TADO Table updaten mit Event
ADO kann das auch selbst machen. Ich kann nur leider erst heute Nacht reinschauen.
Es gab da einen Updatemode, der keine Änderungen direkt in die DB gepostet hat. Stattdessen wurden clientseitig alle Änderungen gecatcht. Batchupdate und Cancel(All) haben den Änderungscache dann gepostet oder zurückgesetzt. Google mal nach ADO und Updatemode, und sag bescheid falls du deine Lösung gefunden hast. Wenn nicht suche ich heute Nacht mal in meinen alten Projekten. |
AW: TADO Table updaten mit Event
Du meinst
![]() |
AW: TADO Table updaten mit Event
Hallihallo gleichmal ein großes Dankeschön an euch !
Tut mir Leid, dass ich erst jetzt zurück schreibe. Habe mich jetzt auf die ADO Komponenten festgelegt und das ganze mit der BatchUpdate Methode gelöst. Statt DataSets dafür zu verwenden blieb ich bei meinen bereits erstellen TADOTables die ebenfalls diese Funktion/Methode bereitstellen. Rufe jetzt nach einer Änderung des Datensatz in Folge eines Button.OnClick Events die Funktion TADOTable.Batchupdate() auf (ohne Parameter). Wichtig ist wie schon in den Anleitungen die ihr gepostet habt, dass CursorLocation auf clUseClient,CursorType auf ctStatic und LockType auf ltBatchOptimistic (bei ltOptimistic werden die Daten in der Datenbank sofort aktualisiert) gesetzt werden. Funktioniert prima ! Nochmals Danke an euch ! :thumb: Vielleicht könnt ihr mir noch eine kleine Frage beantworten. Ist es möglich alle Daten einer TADOTable über einen DataSource in TDBEdit Felder zu schreiben ohne auf jede einzelne Zeile separat zuzugreifen? Zum Verständnis: Tabelle mit 3 Spalten und 3 Zeilen = 9 Zellen diese in 9 Textfelder schreiben Mit freundlichen Grüßen Pilgi91 |
AW: TADO Table updaten mit Event
Nee, So ein TDataset (ein TADOTable ist ja ein Abkömmling) ist zeilenweise organisiert.
Du kannst dir natürlich ein Viewmodel bauen
Delphi-Quellcode:
Und als 'Set' natürlich analog.
Function GetValue (row,col : Integer) : Variant;
Begin myADOTable.RecNo := row; result := myADOTable.Fields[col].Value; // oder so ähnlich End; |
AW: TADO Table updaten mit Event
So etwas kann man auch sehr leicht mit nicht-datensensitiven Controls bauen. Also keine TDBIrgendwasEdit's nehmen, sondern Controls ohne DB Binding.
Als Alternative kann ein TDBGrid natürlich alle 3 Zeilen und Spalten darstellen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz