![]() |
HTTPRIO lokal erzeugt führt zu Zugriffsverletzung
Hallo zusammen,
ich muss auf einen Web Service zugreifen und habe mir dazu mit dem WSDL-Import die passende Unit erzeugt. Nun finde ich es vom Design her allerdings äußert unschön, wenn ich mir diese HTTPRIO-Komponente aufs Formular ziehen muss, weil ich sie da eigentlich gar nicht brauche. Ich wollte das Dingen einfach an der passenden Stelle in der Funktion lokal erzeugen, benutzen und wieder freigeben, wie auch schon hundertfach an anderer Stelle mit anderen Komponenten gemacht. Mit HTTPRIO habe ich allerdings Probleme. Ich kann die Komponente erzeugen, ich kann sie auch nutzen und bekomme vom Web Service auch das richtige Ergebnis, und freigeben kann ich sie letztlich auch. Wenn dann allerdings die Funktion verlassen wird, erhalte ich beim Verlassen entweder eine Zugriffsverletzung oder eine ungültige Zeigeroperation. Das passiert nicht, wenn ich die Komponente zwar erzeuge und freigebe, aber den Web Service nicht aufrufe, und es passiert auch nicht, wenn ich die Komponente am Ende nicht freigebe. Was ist zu tun? Natürlich könnte ich das doch irgendwie aufs Hauptform legen, aber gefallen will mir das nicht. So ähnlich sieht der Code aus:
Delphi-Quellcode:
Eine Änderung zu
procedure CallWS (aTableID: integer; aKeyString: string);
var HTTPrio: THTTPRIO; callURL: string; begin callURL:=''; try try HTTPrio:=THTTPRIO.Create(nil); HTTPrio.WSDLLocation:=currConfig.WSDLlocation; HTTPrio.Service:='myWS'; HTTPrio.Port:='myWS_Port'; HTTPrio.HTTPWebNode.UserName:=currConfig.HTTPuser; HTTPrio.HTTPWebNode.Password:=currConfig.HTTPpassword; callURL:=(HTTPrio as myWS_Port).GetPageURL(aTableID,aKeyString); except on e: exception do begin // Fehler in Log-Datei... end; end; finally HTTPrio.Free; end; // jetzt die URL, die wir bekommen haben, aufrufen // [...] end;
Delphi-Quellcode:
hat auch nicht geholfen. :-(
HTTPrio:=THTTPRIO.Create(Application)
Ideen, anyone? Bis denn Bommel |
AW: HTTPRIO lokal erzeugt führt zu Zugriffsverletzung
Hm, wer Google bedienen kann, ist klar im Vorteil. ;)
![]() Bis denn Bommel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz