AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TADO Table updaten mit Event

TADO Table updaten mit Event

Ein Thema von Pilgi91 · begonnen am 18. Feb 2014 · letzter Beitrag vom 27. Feb 2014
Antwort Antwort
Pilgi91

Registriert seit: 18. Feb 2014
3 Beiträge
 
#1

TADO Table updaten mit Event

  Alt 18. Feb 2014, 09:58
Datenbank: Access • Version: 2007 • Zugriff über: Delphi
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TADO Table updaten mit Event

  Alt 18. Feb 2014, 10:13
Hallo und Willkommen in der 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: http://edn.embarcadero.com/article/22571, insbesondere der Abschnitt "Reconciling data".
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#3

AW: TADO Table updaten mit Event

  Alt 18. Feb 2014, 10:22
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TADO Table updaten mit Event

  Alt 18. Feb 2014, 10:43
Du meinst http://docs.embarcadero.com/products...dates_xml.html. Klar, geht auch, nur legt man sich damit auf ADO fest. Aber das muss ja auch nicht unbedingt ein Nachteil sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Pilgi91

Registriert seit: 18. Feb 2014
3 Beiträge
 
#5

AW: TADO Table updaten mit Event

  Alt 27. Feb 2014, 12:13
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 !

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
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: TADO Table updaten mit Event

  Alt 27. Feb 2014, 12:35
Nee, So ein TDataset (ein TADOTable ist ja ein Abkömmling) ist zeilenweise organisiert.
Du kannst dir natürlich ein Viewmodel bauen
Delphi-Quellcode:
Function GetValue (row,col : Integer) : Variant;
Begin
  myADOTable.RecNo := row;
  result := myADOTable.Fields[col].Value; // oder so ähnlich
End;
Und als 'Set' natürlich analog.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#7

AW: TADO Table updaten mit Event

  Alt 27. Feb 2014, 12:57
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 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