AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Update zeigt keine Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Update zeigt keine Funktion

Ein Thema von PhilmacFLy · begonnen am 1. Apr 2010 · letzter Beitrag vom 1. Apr 2010
Antwort Antwort
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#1

Update zeigt keine Funktion

  Alt 1. Apr 2010, 11:04
Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos
Hi Dp

ich hab mal wieder ein Problem mit meinem Firebird, und zwar versuch ich ein Update auszuführen, aber in der Datenbank nichts gespeichert wird, aber es taucht auch keine Fehlermeldung auf. Hier mal mein Code:

Delphi-Quellcode:
TheStream := TMemoryStream.Create;
if changed then
  if Application.MessageBox('Wollen sie die Änderungen speichern?', 'Änderungen', MB_YesNoCancel or MB_IconQuestion) = IDYes then
    begin
      ZConnection1.Connected := true;
      with ZQuery1 do
        begin
          SQL.Clear;
          Showmessage(inttostr(kid));
          Params.CreateParam(ftSmallint, 'id', ptInput);
          Params.ParamByName('id').Asinteger := kid;
          Params.CreateParam(ftWideString, 'sex', ptInput);
          Params.ParamByName('sex').AsString := cb_anrede.Items.Strings[cb_anrede.ItemIndex];
          Params.CreateParam(ftWideString, 'nn', ptInput);
          Params.ParamByName('nn').AsString := cb_nachname.Items.Strings[cb_vorname.ItemIndex];
          Params.CreateParam(ftWideString, 'vn', ptInput);
          Params.ParamByName('vn').AsString := cb_vorname.Items.Strings[cb_nachname.ItemIndex];
          Params.CreateParam(ftWideString, 'str', ptInput);
          Params.ParamByName('str').AsString := ed_strasse.Text;
          Params.CreateParam(ftWideString, 'plz', ptInput);
          Params.ParamByName('plz').AsString := ed_plz.Text;
          Params.CreateParam(ftWideString, 'ort', ptInput);
          Params.ParamByName('ort').AsString := ed_wohnort.Text;
          Params.CreateParam(ftWideString, 'ph', ptInput);
          Params.ParamByName('ph').AsString := ed_telefonr.Text;
          if ed_geburtsdatum.Text <> 'then
            begin
              Params.CreateParam(ftDate, 'geb', ptInput);
              Params.ParamByName('geb').Value := ed_geburtsdatum.Text;
            end
          else
            begin
              Params.CreateParam(ftString, 'geb', ptInput);
              Params.ParamByName('geb').Value := ed_geburtsdatum.Text;
            end;
          me_bemerkung.Lines.SaveToStream(TheStream);
          Params.CreateParam(ftBlob, 'mem', ptInput);
          Params.ParamByName('mem').LoadFromStream(TheStream, ftBlob);
          SQL.Add('UPDATE Kunden SET Name = :nn, Vorname = :vn, Strasse = :str, PLZ = 92431, ort = :ort, Phone =:ph, Geburtsdatum = :geb, Memo = :mem WHERE ID_KDNR = :kid;');
          ExecSQL;

        end;
    end;
Autocommit ist auf true gesetzt.
Wahrscheinlich ist der Fehler wieder ganz banal nur leider find ich ihn nicht, vllt seht ihr ja was.
Edit: Ich hab auch schon versucht einen festen Wert einzutragen, auch ohne Erfolg
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: Update ziegt keine Funktion

  Alt 1. Apr 2010, 11:15
Oben heißt Dein Parameter "id", unten aber "kid". Und sind die ganzen CreateParams überhaupt nötig?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Update ziegt keine Funktion

  Alt 1. Apr 2010, 11:16
danke. Ich weiss nicht ich dachte immer man braucht die CreateParams das man die Parameter überhaupt benutzen kann.
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

Re: Update ziegt keine Funktion

  Alt 1. Apr 2010, 11:23
Ich würde es einmal so versuchen (keine Gewähr, da direkt im Eingabeeditor eingetippt):
Delphi-Quellcode:
if changed then
  if Application.MessageBox('Wollen sie die Änderungen speichern?', 'Änderungen', MB_YesNoCancel or MB_IconQuestion) = IDYes then
    begin
      ZConnection1.Connected := true;
      TheStream := TMemoryStream.Create;
      try
        with ZQuery1 do
        begin
          SQL.Text := 'UPDATE Kunden SET Name = :nn, Vorname = :vn, Strasse = :str, PLZ = 92431, ort = :ort, Phone =:ph, Geburtsdatum = :geb, Memo = :mem WHERE ID_KDNR = :kid';
          Params.ParamByName('kid').Asinteger := kid;
          Params.ParamByName('nn').AsString := cb_nachname.Items.Strings[cb_vorname.ItemIndex];
          Params.ParamByName('vn').AsString := cb_vorname.Items.Strings[cb_nachname.ItemIndex];
          Params.ParamByName('str').AsString := ed_strasse.Text;
          Params.ParamByName('ort').AsString := ed_wohnort.Text;
          Params.ParamByName('ph').AsString := ed_telefonr.Text;
          Params.ParamByName('geb').Value := ed_geburtsdatum.Text;
          me_bemerkung.Lines.SaveToStream(TheStream);
          Params.ParamByName('mem').LoadFromStream(TheStream, ftBlob);
          ExecSQL;
        end;
      finally
        TheStream.Free;
      end;
    end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Update zeigt keine Funktion

  Alt 1. Apr 2010, 11:31
Ich versteh aber grad nicht wieso man die Parameter nicht erstellen muss, und sie einfach so zuweisen kann bzw wann muss man den Paramter über haupt createn?
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

Re: Update zeigt keine Funktion

  Alt 1. Apr 2010, 11:35
CreateParam
Zitat:
Note: Parameters for datasets that represent queries are only created by specifying parameters in the SQL statement. The TParam objects in such as dataset's Params property are created automatically when parameter tokens are added to the SQL statement.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Update zeigt keine Funktion

  Alt 1. Apr 2010, 11:47
ok danke
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Update zeigt keine Funktion

  Alt 1. Apr 2010, 12:04
Hi,

Tipp: wenn ExecSQL bei Zeos auch die Anzahl der betroffenen Zeilen zurückliefert

statt

ExecSQL; dieses:

Assert(1 = ExecSQL, 'Fehler beim Update in ' + SQL.Text); dann fällt der Fehler sofort auf (es sei denn, Transaktionen werden anschliessend Rollbacked)
Michael Justin
  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 03:34 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