Kbase 19729: Useful Information About MEMPTR & RAW Variable Manipulation
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/16/2009 |
|
Status: Verified
GOAL:
Useful Information About MEMPTR & RAW Variable Manipulation
GOAL:
What is important to know when working with memory pointer MEMPTR and RAW data type variables?
GOAL:
Facts to know when troubleshooting problems with MEMPTR and RAW variables
FACT(s) (Environment):
All Supported Operating Systems
Progress/OpenEdge Product Family
FIX:
- No MEMPTR reallocation. A temporary copy must be made, the size set to zero via SET-SIZE, then set the new size via SET-SIZE, and finally copy the temporary copy back.
- LENGTH(myRawVar) is not Oracle Only.
- PUT-STRING with a RAW destination does not make the RAW resize to the size of the character string if the string is smaller than the RAW. However the RAW will expand if the string is larger. So sometimes RAW size equals string size and sometimes not.
- SET-SIZE on an initialized MEMPTR does not change the size of the MEMPTR to the requested size. The SET-SIZE will silently do nothing (Bug#20000410-026).
- GET-BYTES resets the size of the returned MEMPTR to the number of bytes returned, overriding whatever the previous size was, including making the MEMPTR smaller.
- GET-STRING with a byte count can end up with a partial multi-byte character.
- GET-STRING with a starting position other than 1 can end up with a partial multi-byte character.
- GET-STRING with a byte count did not return a null terminated string (unless last byte fetched happens to be null) prior to Progress 9.1B.