Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi UPDATE Funktion SQL mit Firebird (https://www.delphipraxis.net/132516-update-funktion-sql-mit-firebird.html)

Jens Hartmann 14. Apr 2009 19:56

Re: UPDATE Funktion SQL mit Firebird
 
Soll also heißen,

wenn ich diesen UPDATE Befehl direkt im OI der Query zuweise, brauche ich nur noch die Parameter senden.
Allerdings, wenn ich die Parameter auch direkt der Query zuweise, kommt immer der Fehler, das die Parameter nicht bekannt sind.

mkinzler 14. Apr 2009 19:59

Re: UPDATE Funktion SQL mit Firebird
 
Zitat:

wenn ich diesen UPDATE Befehl direkt im OI der Query zuweise, brauche ich nur noch die Parameter senden.
Ja und auch beim manuellen Zuweisung. Zuweisen und .Prepare() aufrufen, dann wird die Abfrage an den SQL-Server geschickt der ihn dann vorbereitet ( Parsen usw).
Später werden nur noch die Parameter gesendet und auf die vorbereitete Abfrage angewendet. Ohne Prepare erfolgt die Vorbereitung beim 1. Ausführen.

Jens Hartmann 14. Apr 2009 21:20

Re: UPDATE Funktion SQL mit Firebird
 
Ich muss mal wirklich ganz dumm fragen, wie wende ich das an?

mkinzler 14. Apr 2009 21:23

Re: UPDATE Funktion SQL mit Firebird
 
Was?

Jens Hartmann 14. Apr 2009 21:30

Re: UPDATE Funktion SQL mit Firebird
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was du mir versuchst zu erklären.

Ich habe jetzt den UPDATE Befehl direkt in die Query eingetragen und dieser wurden scheinbar automatische aus dem UPDATE Befehl heraus die Params zugewiesen.

Dann habe ich den SQL Befehl in meiner Anweisung entfernt und es getestet. Leider mit dem Fehler im Anhang.


Delphi-Quellcode:
procedure TMailSendenForm.SpeichernButtonClick(Sender: TObject);
begin
  ConPSConfig.Connect;
  QryVorgabe.Close;

  QryVorgabe.ParamByName('ANHANG').AsString := FileEdit.Text;
  QryVorgabe.ParamByName('SEMAIL').AsString := FromMailEdit.Text;
  QryVorgabe.ParamByName('EEMAIL1').AsString := AddMailEdit.Text;
  QryVorgabe.ParamByName('EEMAIL2').AsString := AddMailEdit2.Text;
  QryVorgabe.ParamByName('SMTP').AsString := SMTPEdit.Text;
  QryVorgabe.ParamByName('BENUTZER').AsString := UserEdit.Text;
  QryVorgabe.ParamByName('PASSWORT').AsString := PasswortEdit.Text;

  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  ShowMessage('Daten wurden gespeichert');

  Close;
end;
Gruß Jens

mkinzler 14. Apr 2009 21:35

Re: UPDATE Funktion SQL mit Firebird
 
Im OI siehst du die Parameter?

Jens Hartmann 14. Apr 2009 21:41

Re: UPDATE Funktion SQL mit Firebird
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ja, und die weist mir der OI scheinbar auch allein zu. Lösche ich den SQL String im OI, werden die Params auch automatisch wieder entfernt.

Führe ich erst die Funktion ÜBERNEHMEN aus, geht danach auch SPEICHERN. Der Unterschied der zwei Funktion liegt lediglich daran, das in der einen noch der SQL Text vorhanden ist, und in der anderen, eigendlich der aus dem OI genutzt werden soll.


Delphi-Quellcode:
procedure TMailSendenForm.UebernehmenButtonClick(Sender: TObject);
begin
  ConPSConfig.Connect;
  QryVorgabe.Close;
  QryVorgabe.SQL.Text := 'UPDATE VORGABE SET E_MAIL_ANHANG = :ANHANG,'+
                         'EIGENE_E_MAIL = :SEMAIL, EMPFAENGER_E_MAIL1 = :EEMAIL1,'+
                         'EMPFAENGER_E_MAIL2 = :EEMAIL2, SMTP_SERVER = :SMTP,'+
                         'BENUTZERNAME_E_MAIL = :BENUTZER,PASSWORT_E_MAIL = :PASSWORT';

  QryVorgabe.ParamByName('ANHANG').AsString := FileEdit.Text;
  QryVorgabe.ParamByName('SEMAIL').AsString := FromMailEdit.Text;
  QryVorgabe.ParamByName('EEMAIL1').AsString := AddMailEdit.Text;
  QryVorgabe.ParamByName('EEMAIL2').AsString := AddMailEdit2.Text;
  QryVorgabe.ParamByName('SMTP').AsString := SMTPEdit.Text;
  QryVorgabe.ParamByName('BENUTZER').AsString := UserEdit.Text;
  QryVorgabe.ParamByName('PASSWORT').AsString := PasswortEdit.Text;

  QryVorgabe.ExecSQL;
  ConPSConfig.Commit;

  ShowMessage('Daten wurden gespeichert');
end;

mkinzler 15. Apr 2009 05:27

Re: UPDATE Funktion SQL mit Firebird
 
Und du verwendest die Komponente zwischenzeitlich auch für keine anderen Abfragen?

Jens Hartmann 15. Apr 2009 06:21

Re: UPDATE Funktion SQL mit Firebird
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nein,eigendlich nicht.

Ich häng mal das Unit an.

Das einzige was vorher passiert, ich greife beim Programmstart, allerdings mit einer anderen Connection und auch einer anderen Query Komponente auf die Datenbank zu, um in meinem Hauptformular diese Daten nutzen zu können.

Übrigens, in der jetzt angehangen Unit, ist der UPDATE Befehl, beim Spiechern wieder vorhanden, damit ich diese Funktion habe.

Gruß Jens

mkinzler 15. Apr 2009 06:33

Re: UPDATE Funktion SQL mit Firebird
 
Du verwendest die Querykomponente wie vermutet mehrfach. Verwende verschiedene dafür.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr.
Seite 2 von 4     12 34      

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-2025 by Thomas Breitkreuz