AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBEdit Felder - Wann werden Daten in die DB eingetragen ?
Thema durchsuchen
Ansicht
Themen-Optionen

DBEdit Felder - Wann werden Daten in die DB eingetragen ?

Ein Thema von fragile · begonnen am 22. Jan 2009 · letzter Beitrag vom 23. Jan 2009
Antwort Antwort
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#1

DBEdit Felder - Wann werden Daten in die DB eingetragen ?

  Alt 22. Jan 2009, 10:37
Datenbank: MS SQL • Version: 2005 • Zugriff über: ADO
Hallo,

nach einigem Hin- und Her wollen meine User jetzt die Post/Cancel Schaltflächen des DB-Navigators weg haben, die Daten sollen quasi beim Neuanlegen eines Datensatzes und dem Eintrag in DBEdit-Felder direkt eingetragen werden.

Nun habe ihc bemerkt, daß bei der jetzigen Konfiguration die Änderungen erst nach einem Scroll des Datenzeigers auf der DB eingetragen werden. Gleiches gilt für den Append-Befehl bei Neuanlage eines Datensatzes...

Ich war mir nicht bewusst, daß sich DBEdit-Felder so verhalten und immer ein per Event definiertes Post nötig ist. Gibt es keine Eigenschaft in der Datenquelle/Connnection/DBEdit-Komponente, damit ich quasi "Live" auf der DB arbeiten kann ?

Thx 4 info...
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: DBEdit Felder - Wann werden Daten in die DB eingetragen

  Alt 22. Jan 2009, 11:13
Hallo,

mal schmutzig gedacht: Im OnExit-Ereignis der Komponenten ein Post einbauen.dbedit.DataSource.DataSet.Post; Allerdings muss Du dann auch sicherstellen, dass ein Editieren in den Eingabefeldern eindbedit.DataSource.DataSet.Edit; ausführt, da weiß ich nicht, ob das automatisch geht.

[OT]Manchmal kann ein gutgemeinter Service auch zuviel sein. Das von Deinen Anwender gewünschte verhalten würde ich nicht einbauen, es kommt der Tag, an dem Jemand ganz laut schreit, weil es ihn stört, wenn jede Änderung sofort gespeichert ist und er nicht mehr zurück kann, weil er den alten Wert nicht mehr weiß.[/OT]

Alternative: Mach' Dir 'ne Action, der Du STRG+S als ShortCut zuweist. Wenn der Shortcut betätig wird, kannst Du in der Action ein Post durchführen. Vorteil: Tastaturbenutzer können bei der Tastatur bleiben, Mausschubser können weiter mausen. Und beide können auf den Stand vor der Änderung zurück, solange der Satz im Editiermodus ist.

Eine Eigenschaft, die die Eingabefelder dazu veranlasst, sofort zu speichern ist mir nicht bekannt.

Woran soll ein Eingabefeld denn auch Festmachen, wann eine Änderung abgeschlossen ist?
Wenn des Feld verlassen wird?
Wenn länger als 47,11 Millisekunden keine Eingabe erfolgte?
Nach jedem Tastendruck?

Handelt es sich um eine Massendatenerfassung oder eher um "wir machen hier mal 'ne Eingabe und dort mal 'ne Eingabe"?
Wenn's wirklich um Massenerfassung geht, dann könntest Du auch das KeyDown-Event verwenden:
Wenn Enter gedrückt wir, wird gespeichert. Mit Tab kann man dann immernoch, ohne zu speichern, zwischen den Eingabefeldern wechseln. Bei vielen Eingabefeldern und jeweiligem Speichern könnten sich auch die Antwortzeiten für die Benutzer erhöhen, da ja deutlich mehr Updates gemacht werden müssen.
Kannst Du beim Speichern mit beliebiger Eingabe und unvollständig ausgefüllten Eingabemasken bei der Neuanlage von Datensätzen sicherstellen, dass die Datenbankschlüssel vollständig sind und das ein teilerfasster Satz beim Update von der Datenbank wiedergefunden wird? Ansonsten musst Du ja dann auch noch drauf achten, dass automatisch nur dann gespeichert wird, wenn alle Schlüsselfelder gefüllt sind. Ja nach Komplexität der Eingabemasken, kann Dich dieser kleine Gefallen eine gehörige Portion Arbeit kosten.
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#3

Re: DBEdit Felder - Wann werden Daten in die DB eingetragen

  Alt 22. Jan 2009, 11:31
Es geht konkret um die Eingabe von Stammdaten von Kundenfirmen -
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#4

Re: DBEdit Felder - Wann werden Daten in die DB eingetragen

  Alt 23. Jan 2009, 07:11
Hallo,

der Primärschlüssel wird sowieso als Auto-Index angelegt und kann durch den Benutzer nicht verändert werden. Höchstens bei Suchindexen taucht damit das Problem auf.
Ich denke, ich werde das mit dem KeyDown/Enter-Tasten - Event implementieren, scheint noch der beste Kompromiss zu sein...

Thx 4 Horizonterweiterung
  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 17:52 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