Delphi 10.2 Tokyo, RO 9.5 DynamicWhere conversion error


(navigatorsoftware) #1

Hi,

We have a client application built with DA and RO 9.3 which is calling GetData from the DataService.
The server is built on Linux64 (Ubuntu 18.04) with DA and RO 9.5 (November 2018). When the server is trying to add the dynamicwhere to the statement it gives conversion error.
I found out that the XML parser is not reading correctly the values. The operators, table names and types are processed correctly.
I tried to define the OpenXML and NextGenXML, but the error is the same.
I attached a sample to reproduce the error. I copied the code which is processing the dynamicwhere clause.

Thank you and best regards.
DynamicWhereXMLTest.zip (5.1 MB)


(RemObjects) #2

Thanks, logged as bugs://81833


(RemObjects) #3

bugs://81833 got closed with status fixed.


(EvgenyK) #4

the fix will be present in the next beta


(navigatorsoftware) #5

Could you give a workaround or a fix?

Thank you and best regards.


(EvgenyK) #6

you can use this file: uRONextGenXMLImpl.zip (4.3 KB)

note: later we are going to rewrite uRONextGenXMLImpl.pas for proper support omnixmldom


(navigatorsoftware) #7

Thank you.
Now the test project is working, so I replaced the source file.
With this update when the server receives an GetData with dynamicwhere clause, it cuts the first < character before query and the Xml.Internal.OmniXML unit ReadFromStream function gives unclosed document error HIERARCHY_REQUEST_ERR.
The temporary solution was to add it TDASchema.ApplyDynWhere function if the first char of lWhereClause is not <

Best regards.


(EvgenyK) #8

if it is a bug in native delphi code, can you log a bug at http://quality.embarcadero.com ?


(navigatorsoftware) #9

I don’t think it’s a bug, because before I have overwritten the fixed unit, the XML received by the server was correct. The only change what I made is to replace the file.

Best regards.


(EvgenyK) #10

earlier, it uses Xml.adomxmldom.pas that seems to be designed for nextgen compiler only …