Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Qry:Params.Clear bringt Fehler

  Alt 16. Feb 2020, 13:52
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.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (16. Feb 2020 um 16:03 Uhr) Grund: kleinere Anpassungen zum besseren Verständnis
  Mit Zitat antworten Zitat