Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webservice: String als null übergeben? (https://www.delphipraxis.net/125650-webservice-string-als-null-uebergeben.html)

Phoenix 9. Dez 2008 16:18


Webservice: String als null übergeben?
 
Ich habe einen Webservice, den ich mittels Delphi 6 ansprechen will (siehe auch den anderen Thread).

Die erste Hürde ist genommen, da erscheint sofort die zweite:
Ich habe folgende aus dem WSDL generierte Methode:
Delphi-Quellcode:
function GetReportParameters(const Report: String; const HistoryID: String; const ForRendering: Boolean; const Values: ArrayOfParameterValue; const Credentials: ArrayOfDataSourceCredentials): ArrayOfReportParameter; stdcall;
Nun unterstützt der Report Server keine Historie der Reports. Ich darf also keine HistoryID übergeben. Ein Leerstring wird aber nicht als 'nichts' erkannt. Ich muss hier also 'null' bzw. 'nil' übergeben. Nur geht das hier ja nicht. Was nu?

turboPASCAL 9. Dez 2008 16:50

Re: Webservice: String als null übergeben?
 
Nuja, PChar's währen hier an Stelle von Strings angebracht.

Phoenix 9. Dez 2008 17:10

Re: Webservice: String als null übergeben?
 
Delphi-Quellcode:
PChar(nil)
geht auch nicht.

DeddyH 9. Dez 2008 17:14

Re: Webservice: String als null übergeben?
 
Nur nil ohne Cast.

Apollonius 9. Dez 2008 17:16

Re: Webservice: String als null übergeben?
 
Vorweg: Ich habe keinerlei Ahnung von WSDL und dem Import in Delphi. Aber: Wenn du in Delphi einer lokalen Variable oder einem Parameter einen Leerstring übergibst, wird intern nil übergeben. Das Äquivalent zum C-String #0 existiert in Delphi also nicht direkt. Insofern gibt es vermutlich keine Möglichkeit, an dem Delphi-Wrapper (ich hoffe mal, ich erzähle hier keinen Unsinn) ein nil vorbeizuschleusen, da dieser nil automatisch in einen Leerstring übersetzt.

Phoenix 9. Dez 2008 17:23

Re: Webservice: String als null übergeben?
 
Zitat:

Zitat von DeddyH
Nur nil ohne Cast.

Häh? Der Parameter ist vom Typ String. Ich kann da kein nil übergeben. Das lässt der Compiler nicht zu.

DeddyH 9. Dez 2008 17:25

Re: Webservice: String als null übergeben?
 
Zitat:

Zitat von turboPASCAL
Nuja, PChar's währen hier an Stelle von Strings angebracht.

Dann würde nil auch gehen.

Phoenix 9. Dez 2008 17:49

Re: Webservice: String als null übergeben?
 
Ich habe ein WSDL. Das gibt an der Stelle nunmal String vor. Der WSDL-Importer erzeugt auch eine Unit, die hier String erwartet. Ich kann doch nicht einfach hergehen und das dort in PChar umwandeln? Dann bin ich doch nicht mehr mit dem WSDL konform?

mjustin 9. Dez 2008 17:53

Re: Webservice: String als null übergeben?
 
Zitat:

Zitat von Phoenix
Ich habe ein WSDL. Das gibt an der Stelle nunmal String vor. Der WSDL-Importer erzeugt auch eine Unit, die hier String erwartet. Ich kann doch nicht einfach hergehen und das dort in PChar umwandeln? Dann bin ich doch nicht mehr mit dem WSDL konform?

Mit Delphi 2009 funktioniert es aber? Falls ja, vermute ich dass der Fehler in der alten SOAP Implementierung von Delphi 6 liegt.

DeddyH 9. Dez 2008 17:54

Re: Webservice: String als null übergeben?
 
Dann habe ich auch keine Idee, ein String kann nunmal nicht nil sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.
Seite 1 von 3  1 23      

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