![]() |
Datenbank: Mircosoft SQL Server • Zugriff über: ODBC
Speichern in die Datenbank und nicht nur ins Grid
Hi Leute,
ich habe ein DBEditFeld in dem ich Daten(zumindes im DBGrid) ändere aber es speichert die daten erst wenn ich im DBgrid die entsprechende Zeile verlasse. wie kann ich machen das beim OnExit Event des DBEditFeldes die Daten sofort in der Datenbank gespeichert sind quasie wie wenn ich beim DBNavigator auf den Speicher (Post)-Button drücke. Ich hab mir den Quelltext dazu angeschaut :cyclops: aber da ich noch ein neuling :gruebel: :coder2: bin ab ich nicht viel :?: (eingentlich garnichts :oops: ) verstanden. Ich weis das ist ein klacks für euch :dp: , aber ich komme nicht weiter also danke schonmal für eure hilfe. mfg thomas |
Re: Speichern in die Datenbank und nicht nur ins Grid
|
Re: Speichern in die Datenbank und nicht nur ins Grid
Hi,
erstmal danke für die schnelle antwort, aber leider is das nicht ganz was ich brauche, da es für eine Komponente ist in der ich keinen Query habe. ich bin wie beim DBEdit über DataSource und DataField mit der datenbank verbunden und wenn ich den DBNavigator benutzt und auf speichern klicke wird es auch in die DB eingetragen. Nun würd ich halt nur diese funktion auf OnExit meines Feldes ausführen. mfg Thomas |
Re: Speichern in die Datenbank und nicht nur ins Grid
Kein Problem. Such dir halt die Dataset-Komponente die mit dem DBEdit verbunden ist:
Delphi-Quellcode:
procedure TForm1.DBEdit1Exit(Sender: TObject);
var Query1: TDataset; begin Query1 := DBEdit1.DataSource.Dataset; if Query1.State = dsEdit then begin Query1.Post; end; end; |
Re: Speichern in die Datenbank und nicht nur ins Grid
Zitat:
dann lasse das Query doch einfach weg *g*
Delphi-Quellcode:
Wenn es eine eigene Komponente ist dann natürlich Sender durch self ersetzen und das Typecasting (Sender as .. ) weglassen.
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin with (Sender as TDBEdit) do begin if Assigned(DataSource) then begin with DataSource.DataSet do begin if (State = dsEdit) then begin Post; end; end; end; end; end; |
Re: Speichern in die Datenbank und nicht nur ins Grid
Hi Leute,
Ihr seit ja woll total genial :thumb: das hat super geklapt. Danke nochmal. :dp: :hello: *Freudentanz* :hello: mfg Thomas |
Re: Speichern in die Datenbank und nicht nur ins Grid
Wobei du dir auch einige Zeile sparen kannst. Ich würde z.B. kein with ... do machen, wenns nur um ein, zwei Befehle geht:
Delphi-Quellcode:
Die ganzen begin ... end Blöcke könnten im Prinzip auch wegfallen, sind für die Übersicht aber nicht unpraktisch.
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin with (Sender as TDBEdit) do begin if Assigned(DataSource) then begin if DataSource.DataSet.State = dsEdit then DataSource.DataSet.Post; end; end; end; Das soll jetzt keine Kritik an sharky sein, jeder hat seinen eigenen Programmierstil! Ich wollte das nur aufzeigen, da thomas29h2000 ja selber sagte, er hätte noch nicht so viel Ahnung. Vielleicht hilft das ganze ja noch beim Verständnis ;-) Schönen Gruß, |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 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 by Thomas Breitkreuz