Hallo zusammen,
ich kann machen was ich will, es kommt immer die selbe Schutzverletzung,
wenn ich einen Parameter als ftStream definiert habe und dann entweder die Connection schließen will
uDataModul.DataModule1.FDConnection1.Connected := False
oder die Parameter löschen will
uDataModul.DataModule1.FDQry_Update.Params.Clear
oder den Stream frei geben will
uDataModul.DataModule1.FDQry_Update.CloseStreams
oder die
Query schließen will
uDataModul.DataModule1.FDQry_Update.Close
.
Auch in allen möglichen Reihenfolgen/ Kombinationen probiert.
Delphi-Quellcode:
WITH uDataModul.DataModule1.FDQry_Update.Params DO
BEGIN
Clear; { ! weil ich in einer Schleife zuvor auch schon Params anwende muss ich die hier löschen }
WITH Add DO
BEGIN
NAME := 'Bild';
DataType := ftStream;
ParamType := ptInput;
StreamMode := smOpenWrite; { uses FireDAC.Stan.Intf }
END;
WITH Add DO
BEGIN
NAME := 'RecID_GR';
DataType := ftInteger;
ParamType := ptInput;
END;
END;
TRY
uDataModul.DataModule1.FDQry_Update.ParamByName( 'Bild' ).AsStream := TStream( l_AStream );
uDataModul.DataModule1.FDQry_Update.ParamByName( 'RecID_GR' ).AsInteger := gi_RecID_GR;
uDataModul.DataModule1.FDQry_Update.ExecSQL;
FINALLY
l_AStream.Free;
// uDataModul.DataModule1.FDQry_Update.CloseStreams;
// uDataModul.DataModule1.FDQry_Update.Close;
// uDataModul.DataModule1.FDQry_Update.Params.Clear;
// uDataModul.DataModule1.FDConnection1.Params.Free;
// uDataModul.DataModule1.FDConnection1.Connected := False; <===== bei den 5 Anweisungen knallt es immer (wenn aktiv) mit der selben Fehlermeldung, in allen möglichen Kombinationen
END;
Fehlermeldung:
Zitat:
Erste Gelegenheit für
Exception bei $000000000040E315.
Exception-Klasse $C0000005 mit Meldung 'c0000005 ACCESS_VIOLATION'
Hat jemand noch eine Idee wie man die uDataModul.DataModule1.FDQry_Update closen kann, *ohne* dass die Fehlermeldung ausgelöst wird?
Vielen Dank.