Consultor Eletrônico



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