AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Qry:Params.Clear bringt Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Qry:Params.Clear bringt Fehler

Ein Thema von juergen · begonnen am 15. Feb 2020 · letzter Beitrag vom 19. Feb 2020
Antwort Antwort
Benutzerbild von juergen
juergen

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

Qry:Params.Clear bringt Fehler

  Alt 15. Feb 2020, 21:09
Datenbank: ODBC • Version: xxx • Zugriff über: FireDAC
Edit: 16.02.2020, Bitte das hier ignorieren und direkt ab Post #6 weiterlesen. Danke!

Hallo zusammnen,

ich setze in einer Schleife -je nach Bedingung- die Params einer Query.
Z.B. (nur auszugsweise ohne Fehlerbehandliung usw.):

Delphi-Quellcode:
WITH FDQry_Update.Params DO
BEGIN
  WITH Add DO
  BEGIN
    NAME := 'Bild';
    DataType := ftStream;
    ParamType := ptInput;
    StreamMode := smOpenWrite; { uses FireDAC.Stan.Intf }
  END;
END;

FDQry_Update.ParamByName( 'Bild' ).AsStream := Bild_codiert_als_Base64_aus_StringList_in_Stream_encodieren( Bild_zaehler ) { function };

FDQry_Update.Close;
FDQry_Update.ParamByName( 'Bild' ).Free;
FDQry_Update.Params.Clear; { <=== ! hier knallt es }

Folgende Fehlermeldung erscheint:
Erste Gelegenheit für Exception bei $000000000040E315. Exception-Klasse $C0000005 mit Meldung 'c0000005 ACCESS_VIOLATION'. Prozess xxxx.exe (9564)

Ich habe nun schon einiges probiert mit .Free usw. und verstehe auch nicht warum bei Clear diese Fehlermedlung erscheint.
Nur bei dieser einen Bedingung -wo der Datentyp ftStream ist- knallt es. Die anderen funktionieren.

Kennt hier jemand das Problem, bzw. weiß Rat woran es liegen könnte?

Vielen Dank schon mal vorab!
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 15:00 Uhr)
  Mit Zitat antworten Zitat
Alt 15. Feb 2020, 21:40     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von juergen
juergen

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

AW: Qry:Params.Clear bringt Fehler

  Alt 15. Feb 2020, 21:46
Hallo Frühlingsrolle,

leider ist das nicht das Problem. Anfangs hatte ich das auch nicht, hatte halt einiges probiert.
Wenn ich die Zeile weglasse kommt derselbe Fehler.
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)
  Mit Zitat antworten Zitat
Alt 15. Feb 2020, 21:51     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von juergen
juergen

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

AW: Qry:Params.Clear bringt Fehler

  Alt 15. Feb 2020, 22:13
Hallo Frühlingsrolle,
Stop!
Das Problem scheint beim Stream zu sein, ist nämlich leer. Da hatte mich der Debugger auf die falsche Spur gebracht.
Danke erst mal für deine Unterstützung!
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 08:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

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

AW: Qry:Params.Clear bringt Fehler

  Alt 16. Feb 2020, 12: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 15:03 Uhr) Grund: kleinere Anpassungen zum besseren Verständnis
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz