Hallo
Also folgendes Problem oder ggf. schon gelöst
Ich habe einen Record typ definiert
ESLOG = Record // Documentation zum Einsatz
eslogn : Integer; // Einsatzlog nummer // not null
ESNUM : INTEGER ; // Einsatz nummer
ESLOGUNA : String[30]; // User name
ESMEMO : tmemo; // Memofeld deklarieren //
Meineslog.esmemo := tmemo.create(self);
Meineslog.esmemo.parent := Einsatzform;
Meineslog.ESMEMO.Visible := false; // Soll ja keiner sehen
meineslog.ESNUM := strtoint(Einsatznum.text);// esnum kommt zurück aus dem Speichern
meineslog.ESTEXT := meinesdat.ESDDIAG ;// Symptome
Meineslog.ESMEMO.Lines := patmemo.lines ; // Memo zuordnen
Ok nun habe ich den Record gefüllt und möchte nun den Record in eine
SQL Firebird Datenbank bringen
Folgenden code nutze ich dazu
with sqldbform.IBQuery_eslog do
begin
close;
sql.Clear;
sql.add('INSERT INTO eslog(eslogn,esloguna,esmemo,esnum )');
sql.add('VALUES (:eslogn,:esloguna,:esmemo,:esnum )');
parambyname('eslogn').AsString := Trim(data.ESLOGD); // 'Meine Info
';
parambyname('esloguna').AsString := Trim(data.esloguna ); // user name'Meine Info
';
parambyname('esmemo').AsBlob := data.ESMEMO.lines.text; // Tmemo speichern
parambyname('esnum').Asinteger := data.ESnum ; //
try
// tsqldbform.ibmaintransaction.StartTransaction;
Execsql;
showmessage('Einsatzlog erfolgreich gespeichert! EinsatzNr.:'+ inttostr(data.esnum));
// tsqldbform.ibmaintransaction.Commit;
except
on E:
Exception do begin
MessageDlg( 'Fehler beim speichern: ' + E.Message + CHR(13)+ sqldbform.IBQuery_eslog.Text , mtError, [mbOK], 0 );
noerror := false;
end;
end;
OK nun die Fragen :
Ist das mit dem memo im record so richtig muss ich es einem Form zuordnen ?
Speichere ich das memo so richtig im Blob der Datenbank ab ?
(Habe die leseroutine noch nicht geschrieben )
Muss ich noch was machen um die Daten sofort zu speichern also commit oder so cache ist nicht aktiviert !
Joachim E.