Kbase P111592: Deleting or updating records fail with 12112 error on UTF 8 database using word-index
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/29/2010 |
|
Status: Unverified
SYMPTOM(s):
Deleting records fail with 12112 error
Updating records fail with 12112 error
Unable to delete old values for the index of a word-indexed field (index <index-name> of table <table-name>). The index may be damaged. (12112)
UTF-8 database procopied from %DLC%\prolang\utf\empty
Problem only occurs with word-indexed field
FACT(s) (Environment):
Progress 9.1E
OpenEdge 10.0x
All Supported Operating Systems
OpenEdge Category: Database
OpenEdge Category: Language (4GL/ABL)
CAUSE:
Bug# OE00135254
CAUSE:
When trying to delete or update a word-indexed field, Progress tries to delete the old index values. If it fails, you will see this error 12112. This is possibly due to using the wrong word-break table. For example if the database is stored in UTF-8 and you are not using a UTF-8 word-break table, the index will get corrupted and Progress may not be able to find existing index values.
FIX:
Upgrade to OpenEdge 10.1A02 or later.
Alternatively add a word-break table to the database as follows.
1) Compile a new version of word break table for UTF-8 to a rule number <N>:
Syntax: proutil <database> -C wbreak-compiler %DLC%\prolang\convmap\utf8-bas.wbt <N>
where <N> is number between 1 and 255.
2) Place the newly created file proword.<N> in %DLC% or define the environment variable PROWD<N>=<file-directory>\proword.<N>
3) Apply the new word rules to the database:
Syntax: proutil <database> -C word-rules <N>
4) Rebuild the indexes:
Syntax: proutil <database> -C idxbuild ALL -cpinternal UTF-8
Note: Rebuilding all the indexes is recommended as a precaution.
If this is not possible, then only rebuild the word-indexed fields.
5) Start the database