![]() |
Problem bei XML/SOAP Abfrage
Hallo zusammen,
folgender Aufruf führt zu einer Exception (Zugriffsverletzung) procedure TForm1.GCTClick(Sender: TObject); var request : TXmlGCT; response : TXMLGCTResponse; begin p_CS:= GetCSPortType(false); // Diesr Aufruf klappt if Assigned(p_CS) then response:= p_CS.GCT(request); // Hier tritt der Fehler auf end; end; Ich werde von Delphi gewarnt, dass REQUEST nicht initialisiert ist. Ich weiß nur nicht, wie ich die Initialisierung vornehmen soll. Die Delphi Hilfe erwartet etwas in dieser Form: response:= TXMLGCT.create(IDomNode,TXmlNode,TXmlDocument); Die Klassen und Funktionen sind via WSDL-Import und XSD-Import generiert worden. (kann ich bei Bedarf auch posten) Kann mir jemand helfen? Ich bin für jeden Tipp dankbar. Klaus |
Re: Problem bei XML/SOAP Abfrage
Ist p_CS intantiiert?
|
Re: Problem bei XML/SOAP Abfrage
Zitat:
habe ich vergessen. P_SC ist global deklariert. p_CS : CSPortType; Des weiteren wurde beim WSDL-Import erzeugt: Type GCT = TXMLGCT; CSPortType = interface(IInvokable) ['{63B1C593-F454-74AF-4DF0-32ED9BBFD746}'] function GCT(const parameter: GCT): GCTResponse; stdcall; end; function GetCSPortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): CSPortType; implementation [...] Gruß Klaus |
Re: Problem bei XML/SOAP Abfrage
Hallo
was genau ist TXmlGCT? wenn es nicht nur ein record ist, mußt du es auch erzeugen.
Delphi-Quellcode:
Deine Bemerkung zur Delphi-Hilfe verstehe ich nicht, bzw wie sieht die wsdl aus?
request:=TXmlGCT.create;
request.blabla:='dingsda'; ... response:= p_CS.GCT(request); // Hier tritt der Fehler auf Mfg Frank |
Re: Problem bei XML/SOAP Abfrage
Zitat:
Mit der Delphihilfe meine ich die Eingabehilfe bei der Codeerstellung. TXmlGCT ist durch die automatische XLS-Datenbindung von Delphi erzeugt worden. Hier nur der auf das relevate reduzierte Code:
Delphi-Quellcode:
Und hier noch mal der Code, der duch die zugehöhrige wsdl-Datei erzeugt wurde:
{ XML-Datenbindung }
unit CS; interface uses xmldom, XMLDoc, XMLIntf; type { Forward-Deklarationen } IXMLGCT = interface; { IXMLGCT } IXMLGCT = interface(IXMLNode) ['{801D71FE-7836-48D9-8256-E1E51E909F03}'] end; { Forward-Deklarationen } TXMLGCT = class; { TXMLGCT } TXMLGCT = class(TXMLNode, IXMLGCT) protected { IXMLGCT } end; implementation { TXMLGetCardTerminals } // keine Funktionen end.
Delphi-Quellcode:
Gruss vom Klaus
unit CSW;
interface uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns, CS; type Type GCT = TXMLGCT; CSPortType = interface(IInvokable) ['{63B1C593-F454-74AF-4DF0-32ED9BBFD746}'] function GCT(const parameter: GCT): GCTResponse; stdcall; end; function GetCSPortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): CSPortType; implementation [...] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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