AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Speichern in die Datenbank und nicht nur ins Grid
Thema durchsuchen
Ansicht
Themen-Optionen

Speichern in die Datenbank und nicht nur ins Grid

Ein Thema von thomas29h2000 · begonnen am 26. Aug 2005 · letzter Beitrag vom 26. Aug 2005
Antwort Antwort
thomas29h2000

Registriert seit: 9. Aug 2005
21 Beiträge
 
#1

Speichern in die Datenbank und nicht nur ins Grid

  Alt 26. Aug 2005, 05:48
Datenbank: Mircosoft SQL Server • Zugriff über: ODBC
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 aber da ich noch ein neuling bin ab ich nicht viel (eingentlich garnichts ) verstanden.

Ich weis das ist ein klacks für euch , aber ich komme nicht weiter also danke schonmal für eure hilfe.

mfg
thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Speichern in die Datenbank und nicht nur ins Grid

  Alt 26. Aug 2005, 05:55
Hai Thomas,

Du kannst im Delphi-Referenz durchsuchenOnExit deines Edits prüfen ob sich dein TDataSet im Editmodus befindet und wenn ja ein Delphi-Referenz durchsuchen.Post durchführen. Zum Beispiel:
Delphi-Quellcode:
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin
  if Query1.State = dsEdit then
  begin
     Query1.Post;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
thomas29h2000

Registriert seit: 9. Aug 2005
21 Beiträge
 
#3

Re: Speichern in die Datenbank und nicht nur ins Grid

  Alt 26. Aug 2005, 07:09
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Speichern in die Datenbank und nicht nur ins Grid

  Alt 26. Aug 2005, 07:14
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;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Speichern in die Datenbank und nicht nur ins Grid

  Alt 26. Aug 2005, 07:16
Zitat von thomas29h2000:
... in der ich keinen Query habe.
Hai Thomas,

dann lasse das Query doch einfach weg *g*
Delphi-Quellcode:
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;
Wenn es eine eigene Komponente ist dann natürlich Sender durch self ersetzen und das Typecasting (Sender as .. ) weglassen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
thomas29h2000

Registriert seit: 9. Aug 2005
21 Beiträge
 
#6

Re: Speichern in die Datenbank und nicht nur ins Grid

  Alt 26. Aug 2005, 07:44
Hi Leute,

Ihr seit ja woll total genial das hat super geklapt. Danke nochmal.

*Freudentanz*

mfg
Thomas
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#7

Re: Speichern in die Datenbank und nicht nur ins Grid

  Alt 26. Aug 2005, 08:02
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:
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;
Die ganzen begin ... end Blöcke könnten im Prinzip auch wegfallen, sind für die Übersicht aber nicht unpraktisch.

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ß,
  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 04:09 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