Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

UPDATE Funktion SQL mit Firebird

  Alt 14. Apr 2009, 14:10
Datenbank: Firebird • Version: 2.1 • Zugriff über: ZEOS
Hallo zusammen,

hab mal wieder eine Frage. Ich habe eine Form, in der ich diverse Daten konfiguriere. Diese Daten werden dann in einer Datenbank gespeichert.

Es gibt in dieser Datenbank zwar mehrere Spalten, aber immer nur mit einem Wert, da es nur Konfigurationseinstellungen sind.

Wenn ich diese Form aus meinem Programm Starte, lese ich beim Form Create die Daten Folgendermaßen ein...

Delphi-Quellcode:
procedure TMailSendenForm.FormCreate(Sender: TObject);
begin
  ConPSConfig.Connect;
  QryVorgabe.Close;
  QryVorgabe.SQL.Text := 'SELECT E_MAIL_ANHANG, EIGENE_E_MAIL, EMPFAENGER_E_MAIL1,'+
                         'EMPFAENGER_E_MAIL2,SMTP_SERVER, BENUTZERNAME_E_MAIL,'+
                         'PASSWORT_E_MAIL FROM VORGABE';
  QryVorgabe.Open;

  FileEdit.Text := QryVorgabe.FieldByName('E_MAIL_ANHANG').AsString;
  FromMailEdit.Text := QryVorgabe.FieldByName('EIGENE_E_MAIL').AsString;
  AddMailEdit.Text := QryVorgabe.FieldByName('EMPFAENGER_E_MAIL1').AsString;
  AddMailEdit2.Text := QryVorgabe.FieldByName('EMPFAENGER_E_MAIL2').AsString;
  SMTPEdit.Text := QryVorgabe.FieldByName('SMTP_SERVER').AsString;
  UserEdit.Text := QryVorgabe.FieldByName('BENUTZERNAME_E_MAIL').AsString;
  PasswortEdit.Text := QryVorgabe.FieldByName('PASSWORT_E_MAIL').AsString;

  QryVorgabe.Close;
  ConPSConfig.Disconnect;

  if CheckBox1.Checked then
    begin
    SMTPEdit.Enabled := true;
    SMTPRadioGroup.Enabled := false;
    end
  else
    begin
      SMTPEdit.Enabled := false;
      SMTPRadioGroup.Enabled := true;
    end;
end;
Wenn ich jetzt auf dieser Form speicher(UPDATE), mach ich das so...

Delphi-Quellcode:
procedure TMailSendenForm.SpeichernButtonClick(Sender: TObject);
begin
  ConPSConfig.Connect;
  QryVorgabe.Close;
  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET E_MAIL_ANHANG = :ANHANG';
  QryVorgabe.ParamByName('ANHANG').AsString := FileEdit.Text;
  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET EIGENE_E_MAIL = :SEMAIL';
  QryVorgabe.ParamByName('SEMAIL').AsString := FromMailEdit.Text;
  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET EMPFAENGER_E_MAIL1 = :EEMAIL1';
  QryVorgabe.ParamByName('EEMAIL1').AsString := AddMailEdit.Text;
  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET EMPFAENGER_E_MAIL2 = :EEMAIL2';
  QryVorgabe.ParamByName('EEMAIL2').AsString := AddMailEdit2.Text;
  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET SMTP_SERVER = :SMTP';
  QryVorgabe.ParamByName('SMTP').AsString := SMTPEdit.Text;
  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET BENUTZERNAME_E_MAIL = :BENUTZER';
  QryVorgabe.ParamByName('BENUTZER').AsString := UserEdit.Text;
  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET PASSWORT_E_MAIL = :PASSWORT';
  QryVorgabe.ParamByName('PASSWORT').AsString := PasswortEdit.Text;
  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;
  ShowMessage('Daten wurden gespeichert');
end;
Im Grunde, funktioniert alles. Ich denke aber, das ich das mit dem UPDATE wahrscheinlich einfacher machen kann. Die Create müsste eigendlich so OK.

Für Eure Ansicht dazu würde ich mich interessieren. Also schon mal danke.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat