Global Webservice how to?


2005-12-14 03:04:22 AM
delphi235
Hi,
I've posted several posts on this newsgroup about a few issues without
getting a conclusive response.
The issues are:
1. How to make a webservice and a client application capable of using
Unicode? (I've created a webservice using Delphi 8 and a client in D7)
The server is capable of sending unicode characters and so is the
webservice but not of receiving them.
This probably has to do with the Encoding property of the HTTPRIO
component but I have tried a few different encodings there without much
luck.
ex.
WebMethod has 2 parameters:
Language & Translation of the type String
If I try to send the parameters 'English', 'Æði' the service writes
????i into the database (this gets even worse with chinese
characters).
If I write the same values into the database directly then the
webservice has no problems with sending them to me.
2. DateTime and floating point issues are a major pain when
communicating between different locales.
To complicate this issue even more it seems that everytime I call a
webservice method from my Delphi 7 app the locale of the app changes to
English.
There is also the issue of TXSDateTime & TXSDouble which seem to make
no sense to the webservice when Delphi tries to send them as
parameters. My solution to this is a crude one, I only use string
parameters for dateTime, float and string, but it works. I have to
store the system locale of the computer running the webservice in an
INI file and then convert to that before sending it to the server.
3. This one is not relevant to SOAP or the web in general. I'd very
much like to be able to fix the above mentioned problems but they
don't do me any good if my Delphi 7 app can not show those characters.
Is there no way of showing chinese characters within a Delphi 7 app
without replacing every TLable, TComboBox, TListbox etc.
I've looked at the TNT component package and tried replacing all of
the component in my app but then I couldn't use their text value as a
parameter in the webservice since now all strings are of the type
TTntString.
Does anyone know of an article or tutorial covering these issues?
Thank you,
nisbus