Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#62

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 17:15
Hallöle...
Ach Jungs...soviele Beiträge und ein Blick in die Dataset DefList hätte genügt.

@EdAdvokat:
Der der Debugger hilft dir solche Probleme zu analysieren.

Ich weiß das das nur zum Testen ist...aber die Logik dahinter verstehe icht nicht.
Delphi-Quellcode:
procedure TMainFRM.btnuebernehmenClick(Sender: TObject);
var
  currentID: string;
  sqlstring: string;
begin
  qMain.SQL.Clear; // da du mit SQL.Text arbeitest ist die Zeile überflüssig
  qMain.Params.Clear; // da du mit SQL.Text arbeitest ist die Zeile überflüssig
  sqlstring:=edtsqlstring.text;
  if flag then
  begin
    // currentID zuweisen
    currentID:=lv.Selected.Caption;
    // SQL mit Parametern
    qMain.SQL.Text:='UPDATE KONTAKTE SET NAME= :NAM, VORNAME= :VNA, GEB= :GEB, STRASSE= :STR, Nr= :NR, PLZ= :PLZ, ORT= :ORT, TEL= :TEL, EMAIL= :EMA, BEMERKUNG= :BEM WHERE ID=:CID';
    qMain.ParamByName('CID').AsString:=currentID;
    qMain.ParamByName('NAM').AsString:=edtName.Text;
    qMain.ParamByName('VNA').AsString:=edtVorname.Text;
    qMain.ParamByName('GEB').AsString:=edtGeb.Text;
    qMain.ParamByName('STR').AsString:=edtStrasse.Text;
    qMain.ParamByName('Nr').AsString:=edtNr.Text;
    qMain.ParamByName('PLZ').AsString:=edtPLZ.Text;
    qMain.ParamByName('ORT').AsString:=edtOrt.Text;
    qMain.ParamByName('TEL').AsString:=edtTel.Text;
    qMain.ParamByName('EMA').AsString:=edtemail.text;
    qMain.ParamByName('BEM').AsString:=edtBemerkung.Text;
    // Ausführen des Update
    qMain.ExecSQL;
    // Listview neu einlesen
    refreshItems(currentID,edtName.Text,edtVorname.Text,edtGeb.Text,edtStrasse.Text,edtNr.Text,edtPLZ.Text,edtOrt.Text,edtTel.Text,edtemail.Text,edtBemerkung.Text);
    // Listview wieder leeren... Hä? :-)
    lv.Items.Clear;
    // Datenbank verbinden... Hä? :-) Die Verbindung wird im FormCreate gemacht. :-)
    Connect;
  end
PS: Im SQL select last_insert_rowid() muß die Klammer angegeben werden!
Miniaturansicht angehängter Grafiken
test.png  

Geändert von haentschman (16. Mai 2017 um 17:33 Uhr)
  Mit Zitat antworten Zitat