Wenn ich mit folgendem Quelltext den Formularinhalt in die DB abspeichere klappt das zunächst:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| ***************************************************** procedure Tfrm_Rechnung.bt_SpeichernClick(Sender: TObject); begin if(lbl_ReNr.Caption<>'0') AND (cb_Nachname.Text<>'') AND(Ed_Vorname.Text<>'') THEN begin ora_qry_SpeichernR.SQL.Text:='INSERT INTO rechnung' +'(renr, datum,' +' r_kdnr, gesamtbetrag)' +'VALUES(:RENR, :DATUM,' +' :R_KDNR, :GESAMTBETRAG)'; ora_qry_SpeichernR.Params.ParamByName('RENR').AsInteger:=StrToInt(lbl_ReNr.Caption); ora_qry_SpeichernR.Params.ParamByName('DATUM').AsDateTime:=dtp_Rechnung.DateTime; ora_qry_SpeichernR.Params.ParamByName('R_KDNR').AsInteger:=StrToInt(Ed_Kdnr.Text); ora_qry_SpeichernR.Params.ParamByName('GESAMTBETRAG').AsFloat:=StrToFloat(lbl_BruttoGesamtbetrag.Caption); ora_qry_SpeichernR.Execute;
Re_Speichern;
ora_qry_ArtUebernehmen.SQL.Text:='TRUNCATE TABLE tempredat'; ora_qry_ArtUebernehmen.Execute;
application.MessageBox('Die Rechnungsdaten wurden gespeichert','Rechnung gespeichert',64); end else begin ShowMessage('Solange Sie keine Artikel in Rechnung stellen, läßt sich die Rechnung nicht abspeichern'); frm_Main.Show; end; end; **************************************************** |
Würde ich jetzt mit frm_Main.Show mein aktuelles Formular schließen, dann wieder öffnen kann ich problemlos die nächste Rechnung eingeben und abspeichern. Wenn ich aber das Formular nicht schließé erhalte ich den Fehler:
SQL-Befehl wurde nicht korrekt beendet. Wieso denn das?
Mit folgendem Quelltext beginne ich eine neue Rechung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| *************************************** procedure Tfrm_Rechnung.bt_NeuClick(Sender: TObject); begin qry_ReNr.Close; qry_ReNr.SQL.Add('SELECT MAX(RENR)+1 AS nr FROM rechnung'); qry_ReNr.Open; if (qry_ReNr.Recordset.RecordCount > 0) and (qry_ReNr['nr']<> NULL) THEN begin lbl_ReNr.Caption:=qry_ReNr['nr']; end else begin qry_ReNr.Close; qry_ReNr.SQL.Clear; qry_ReNr.SQL.Add('SELECT renr FROM renummer'); qry_ReNr.Open; lbl_ReNr.Caption:=qry_ReNr['renr']; end; cb_Nachname.Clear; Ed_Vorname.Clear; Ed_Kdnr.Clear; end; *************************************** |
Verstehen kann ich das nicht, denn beim erste Abspeichern gibt es keine Probleme alle Daten werde korrekt in die DB gespeichert.
Viele Grüße
Gabi
Moderiert von
raziel: Delphi-Tags hinzugefügt