Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBEdit beschreiben nachdem Dataset im insertmode ist (https://www.delphipraxis.net/8900-dbedit-beschreiben-nachdem-dataset-im-insertmode-ist.html)

barnti 15. Sep 2003 09:05


DBEdit beschreiben nachdem Dataset im insertmode ist
 
Hallo,

ich möchte beim Aufrufen meines Datasets in den Insert-Modus einen Wert in den dazugehörigen DBEdit-Feldern vorgeben. Leider Klappt das nicht, wenn ich das in das Before- oder Afteredit Ereignis schreibe. Dann werden diese Werte leider durch leere Werte eines neu anzulegenden Records gelöscht.

Ich möchte ja nun Werte in die Editfelder eintragen sobald ein neuer Datensatz angelegt wird, so zu sagen als Eingabehilfe. Der Benutzer soll nur die noch offenen Felder ergänzen.

Wie kann ich die Felder beschreiben nachdem ich in den Insert-Modus wechsle, ohne dass die Eingabe wieder gelöscht werden?

Danke und Gruß,

Barnti

Memo 15. Sep 2003 09:41

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Pack es in's Afterinsert.

barnti 15. Sep 2003 09:49

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Hi Memo,

das hatte ich vergessen zu erwähnen: das ist das selbe Problem. Denn die DBEdit-Felder werden erst nach dem Öffnen des Datasets im insert mode beschrieben, d.h. auch das Afterinsert-event überschreibt meine Eintragungen in den DBEditfeldern.

Trotzdem danke!

Noch andere Ideen?

Gruß,

Barnti

Memo 15. Sep 2003 10:09

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Zitat:

Zitat von barnti
Denn die DBEdit-Felder werden erst nach dem Öffnen des Datasets im insert mode beschrieben, d.h. auch das Afterinsert-event überschreibt meine Eintragungen in den DBEditfeldern.

Bitte wie, was? Kannst du das nochmal verständlich erklären?
Und welche Datenbank benutzt du?

r_kerber 15. Sep 2003 10:15

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Hallo Barnti,

dann verwende doch keine DBEdit- sondern "normale" Edit-Felder. Zusätzlich einen Button auf's Formular (Einfügen). Im OnClick-Ereignis des Buttons schreibst Du dann folgendes:
Delphi-Quellcode:
   Table1.Append;
   Table1Feld1.AsString := Edit1.Text;
   .
   .
   .
   Table1.Post;
In der OH steht hierfür auch noch ein Beispiel.

barnti 15. Sep 2003 10:16

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Hi,

na ich versuchs mal :) :

Ich öffne mein Dataset im Insertmode, so dass ein neuer Datensatz angelegt wird. Dabei sollen die vorhandenen DBEdit-Felder schon mit vorgegebenen Werten versehen werden. Soll heißen, wenn ich ein neuen Auftrag zu einen Kunden anlege, soll in einem der Editfelder zu dem Record 'Vertrag' schon der Kundenname eingetragen sein. Die anderen Einträge können dann per Hand nachgetragen werden.
Ich möchte auch auf jeden Fall ein DBEdit-Feld benutzen und KEINE DBLookUpComboBox.
Ich hoffe jetzt wird es etwas verständlicher?!

Gruß,

Barnti

P.S. Ich arbeite mit mySQL 4

barnti 15. Sep 2003 10:25

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Hi,

@ r_kerber:

Das ist sicherlich eine Möglichkeit, die ich bedenken werde. Aber schöner wäre es, wenn es sich mit den DBEdit-Feldern bewerkstelligen ließe...

Gruß,

Barnti

r_kerber 15. Sep 2003 10:49

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Zitat:

Zitat von barnti
Aber schöner wäre es, wenn es sich mit den DBEdit-Feldern bewerkstelligen ließe...

Ist aber nicht zu empfehlen, wenn Du Mit SQL-Datenbanken und Transaktionen arbeitest.

Memo 15. Sep 2003 11:05

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Zitat:

Zitat von barnti
Ich öffne mein Dataset im Insertmode, so dass ein neuer Datensatz angelegt wird. Dabei sollen die vorhandenen DBEdit-Felder schon mit vorgegebenen Werten versehen werden.

Insert ist erfolgt. wenn im Afterinsert-Teil nun
Code:
DBEdit1.Text := 'ABC'
steht, frag ich mich, wer dein DBEditfeld wieder leert? Normal sollten die Daten drin stehen. Verheimlichst du uns noch was anderes? :roll:

@r_kerber
Warum würdest du es nicht empfehlen?

r_kerber 15. Sep 2003 11:15

Re: DBEdit beschreiben nachdem Dataset im insertmode ist
 
Zitat:

Zitat von Memo
@r_kerber
Warum würdest du es nicht empfehlen?

Transaktionen bewirken Datensatzsperren. Nun stell Dir mal vor, jemand will einen Datensatz anfügen (oder schlimmer noch einen vorhandenen editieren) und verläßt dann seinen Arbeitsplatz für längere Zeit... Ist irgendwie unschön. Der DBServer muß nun unnötig lange Transaktionen und DS-Sperren offenhalten und verwalten. Deshalb: erst Daten eingeben und dann schnell alles zur DB schicken.
Außerdem sollte man Änderungen von Daten auf DB-Servern auch nicht über TTable(oder TQuery).Edit(Append) durchführen, sondern unter Verwendung von SQL-Befehlen (INSERT, UPDATE).


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.
Seite 1 von 2  1 2      

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