Kbase P144566: 4GL/ABL: Errors (13036), (13064) and (13035) invoking READ-XML method
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/31/2011 |
|
Status: Verified
SYMPTOM(s):
4GL/ABL: Errors (13036), (13064) and (13035) invoking READ-XML method
Error reading XML from a MEMPTR or LONGCHAR. (13036)
READ-XML encountered an error while parsing the XML Document: <error>. (13064)
READ-XML encountered an error while parsing the XML Document: FATAL ERROR: file 'MEMPTR', line '1', column '1568', message 'Expected an element name'. (13064)
Error reading XML file '<file>'. (13035)
Error reading XML file 'C:\OpenEdge\WRK101B\W904090076\Second.xml'. (13035)
READ-XML encountered an error while parsing the XML Document: <error>. (13064)
READ-XML encountered a error while parsing the XML Document: FATAL ERROR: file 'C:\OpenEdge\WRK101B\W904090076\Second.xml', ;ine '1' column '1568' message 'Expected an element name'. (13064)
The READ-XML fails to read UTF-8 data back into a TEMP-TABLE after extracting it from the database table to a LONGCHAR or a FILE.
Chinese characters saved in a BLOB database field are pulled back as gibberish characters instead of cool looking Chinese Glyphs.
UTF-8 CHARACTER data extracted from a database table into a TEMP-TABLE and written to a BLOB field can not be properly retrieved.
CHARACTER data is extracted from the database into a TEMP-TABLE.
The WRITE-XML method copies the CHARACTER data from the TEMP-TABLE to a LONGCHAR variable.
The COPY-LOB method copies the CHARACTER data from the LONGCHAR variable to a BLOB database field.
The COPY-LOB method copies the BLOB database field back into a second LONGCHAR variable and into a FILE
The READ-XML method fails to load data back into a TEMP-TABLE from either the second LONGCHAR variable or the FILE
FACT(s) (Environment):
The READ-XML method succeeds to read the same UTF-8 data into a TEMP-TABLE from a LONGCHAR or a FILE if the data is stored in a CLOB instead of a BLOB database field.
OpenEdge 10.1B
OpenEdge 10.1C
OpenEdge 10.2A01 Service Pack
All Supported Operating Systems
CAUSE:
Bug# OE00183425
CAUSE:
The COPY-LOB from the LONGCHAR containing the XML to the BLOB database field only copied the LONGCHAR's character length, not the byte length, causing a truncated XML document to be supplied to the READ-XML method that fails to process the truncated XML document.
FIX:
Upgrade to OpenEdge 10.2B or later. If upgrading to OpenEdge 10.2B or later is not feasible, a workaround is to use one of the following methods:
1. Use a CLOB database field instead of a BLOB database field to store the data.
2. Use the WRITE-XML method to copy the data from the TEMP-TABLE to a MEMPTR variable (instead of a LONGCHAR variable), then use the COPY-LOB method to copy the data from the MEMPTR variable into the database BLOB field.
FIX:
Upgrade to OpenEdge 10.2A, OpenEdge 10.2B or later. If upgrading is not fesible, a workaround is to compile all the ABL classes and procedures in the project.