AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TAdoQuery.Edit mit mehreren Datensätzen
Thema durchsuchen
Ansicht
Themen-Optionen

TAdoQuery.Edit mit mehreren Datensätzen

Ein Thema von Freiwilderer · begonnen am 7. Jan 2010 · letzter Beitrag vom 7. Jan 2010
Antwort Antwort
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#1

TAdoQuery.Edit mit mehreren Datensätzen

  Alt 7. Jan 2010, 15:47
Datenbank: MSSQL • Zugriff über: ADO
Hallo,
ich hab mal wieder n problem und kann dazu im Netz nix finden.

und zwar gibt es bei der TAdoQuery Komponente die schöne Funktion Edit, mit der man einfach den aktuellen Datensatz verändern kann.
Dabei wird der Eigenschaft State auf dsEdit gesetzt.
Den bereits ausgewählten Datensatz kann ich dann ohne Probleme verändern, wenn ich dann allerdings die nächste Zeile anwähle, wird der State wieder auf dsBrowse gesetzt, und die Änderungen werden gespeichert.

Das Speichern (mit TAdoQuery.Post) oder Abbrechen (mit TAdoQuery.Cancel) will ich aber über Buttons steuern...

hat das vielleicht schonmal jemand hinbekommen ?

mfg
Freiwilderer
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: TAdoQuery.Edit mit mehreren Datensätzen

  Alt 7. Jan 2010, 16:19
Hallo,

schau mal nach dem Ereignis BeforeScroll, hier kannst Du abfragen, ob geändert wurde und den Anwender bitten, zu speichern oder eben auch nicht oder das Speichern verhindern, wenn es nur beim direkten Aufruf von Post über Button erfolgen soll.
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TAdoQuery.Edit mit mehreren Datensätzen

  Alt 7. Jan 2010, 16:26
hi
und danke für die schnelle antwort
das problem is ja, dass ich eigentlich ganz gern mehrere datensätze in einer sagen wir sitzung verändern möchte, ohne jedes mal auf speichern drücken zu müssen und mit der möglichkeit alle änderungen wieder rückgängig zu machen.

im grunde soll das dann aussehen, wie in excel ... ich ändere alles, was ich will und wenn ich fertig bin drück ich auf speichern oder auf schließen und speichere nicht.


in einer anderen Maske habe ich statt einer AdoQuery ein dxMemData verwendet und dabei geht das ohne probleme, allerdings will ich diese komponente nicht überall verwenden, wenn es sich vermeiden lässt.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: TAdoQuery.Edit mit mehreren Datensätzen

  Alt 7. Jan 2010, 16:37
Hallo,

dxmemData kenn' ich nicht, aber der Name klingt so, als wäre es eine Tabelle, die nur im Arbeitsspeicher liegt. Damit dürfte das von Dir gewünschte realisierbar sein. Nur mit TAdoQuery geht das (meines Wissens) nicht. Hier könntest Du als Alternative einen ClientDataSet nehmen, den DU aus der TAdoQuery befüllst, im DBGrid oder so zum Editieren anbietest und dann auf Buttondruck alle Änderungen an die Datenbank zurückgibst.
Hier gilt dann aber auch: Beim Browsen werden die Änderungen im ClientDataSet gespeichert (aber noch nicht in der Datenbank) und auf Buttondruck kannst Du entweder alles oder nichts speichern.
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: TAdoQuery.Edit mit mehreren Datensätzen

  Alt 7. Jan 2010, 16:41
Hi
Ja, das speichert die Daten lokal zwischen.

Ich bin im moment dabei die vorhandenen ClientDataSets zu löschen, da die anderweitig probleme machen und versuche jetzt die funktionalität anders abzubilden...
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: TAdoQuery.Edit mit mehreren Datensätzen

  Alt 7. Jan 2010, 17:17
Du müsstest zu Beginn eine Transaction starten:
ADOConnection1.BeginTrans Danach kannst du mehrere Datensätze verändern.
Zuletzt muss sich der Benutzer entscheiden, ob er ALLE Änderungen übernehmen oder verwerfen möchte.
Dazu entweder CommitTrans oder RollbackTrans aufrufen.
fork me on Github
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: TAdoQuery.Edit mit mehreren Datensätzen

  Alt 7. Jan 2010, 17:28
hi sx2008
danke erstmal für deine Antwort

das würde zwar vermutlich gehen, aber das würde schon sehr unschön aussehen und von der benutzung wärs wohl auch nich sonderlich toll ...

Ich bin mitlerweile so weit, dass ich doch versuche einfach das scrollen zu verhindern, auch, wenn das nicht sonderlich schön ist.
Das Problem ist allerdings, dass die ADOQuery den State Modify schon im BeforScroll wieder auf Browse setzt ...
weiß da momentan nich weiter ^^
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:13 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