procedure NotizErfassen;
var i, AnzahlNotizen : integer;
Query:TIBQUERY;
Transaktion : TIBTransaction;
SQL :
string;
begin
hLog.Add('
');
hLog.Add(DateTimetoStr(now) + '
: ' + '
***** Notiz erfassen *****');
AnzahlNotizen := frmMain.AdvCodeListNotizen.CodeBlocks.Count;
frmMain.AdvCodeListNotizen.CodeBlocks.Add(DateTimeToStr(Now));
for i := 0
to frmMain.MemoNotizen.Lines.Count
do
begin
frmMain.AdvCodeListNotizen.CodeBlocks.Items[AnzahlNotizen].Code.Add(frmMain.MemoNotizen.Lines[i]);
end;
//sichern der Notizen in Tabelle TBLNOTIZEN
//Queryobjekt unbd Transaktion erzeugen
Query := TIBQUERY.create(
nil);
Query.Database := DataModule1.IBDatabase;
//Datenbank zuordnen
Transaktion := TIBTransaction.Create(
NIL);
//Transaktion dyn. erzeugen
Transaktion.DefaultDatabase := DataModule1.IBDatabase;
//Datenbank zuordnen
Transaktion.AllowAutoStart := False;
//Transaktionen müssen explizit gestartet werden
Query.Transaction := Transaktion;
//Transaktion zuordnen
Transaktion.StartTransaction;
//Transaktionsbeginn
if Length(frmMain.MemoNotizen.Text) > 0
then
begin
SQL := '
insert into tblnotizen (id, notiz) '
+ '
values (gen_id( gen_tblnotizen_id,1),'
+ '
:Memo' + '
)';
Query.sql.Text :=
SQL;
Query.ParamByName('
Memo').asBlob := frmMain.MemoNotizen.Text;
//Query ausführen
Try
Try
Query.ExecSQL;
//Abfrage ausführen
Finally
end;
//Finally
EXCEPT
on E:
Exception do
begin
StatusMeldung(rot, '
Fehler beim Anlegen der Notizen! (Ausführen der Abfrage fehlerhaft)');
hLog.Add(DateTimetoStr(now) + '
: ' + '
SQL-Befehl: ' +
SQL);
Transaktion.Rollback;
Raise;
end;
END;
//Except
//Query und Transaktion beenden
Try
Try
Transaktion.Commit;
StatusMeldung(gruen, '
Notiz wurde erfolgreich gesichert');
Finally
frmMain.MemoNotizen.Clear;
//Anschließend löschen
Query.free;
Transaktion.Free;
Screen.Cursor := crDefault;
end;
//Finally
EXCEPT
on E:
Exception do
begin
StatusMeldung(rot, '
Sicherung der Notiz nicht möglich -> Rollback der Transaktion!');
Transaktion.Rollback;
Raise;
end;
END;
//Except
end //if Length(MemoNotizen.Text) > 0 then
else
begin
if Length(frmMain.MemoNotizen.Text) = 0
then
begin
StatusMeldung(rot, '
Notiz darf nicht leer sein!');
end;
end;
//else
NotizenLesen;
//zum Aktualisieren
end;