Kbase P122094: Getting error 1422 when accessing a record in UPDATE mode with an Unicode Database
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/1/2008 |
|
Status: Unverified
SYMPTOM(s):
Getting error 1422 when accessing a record in UPDATE mode with an Unicode Database
Getting error 1422 when accessing a record in DELETE mode with an Unicode Database
SYSTEM ERROR: Index in <tablename> for recid <recidnumber> could not be deleted. (1422)
CAUSE:
Correct Unicode collation table wasn't loaded and indexes weren't rebuilt in base to the correct collation (UNICODE UTF-8)
FIX:
One way to check if the collation is the correct one is by dumping from the Data Dictionary your _tran.df table.
Once you have dumped the _tran.df table you can compare the dumped _tran.df table to the one located in the $DLC/prolang/utf/_tran.df table.
If there is a difference, probably one of the steps of the Database conversion to Unicode has been skipped.
When converting an existing Database to Unicode it is also necessary to load the correct collation table an rebuild the indexes.
After the steps that follow, the DBKEYS of the indexes in the Database should be rebuilt using the correct Unicode Collation table. It will then be possible to access the records in update and delete mode.
It is possible to correct this error by loading the _tran.df table located in the $DLC/prolang/utf/ directory into your Database.
0. Perform a backup of your Database.
1. Load from Data Dictionary Data Administration the correct Unicode _tran.df located in $DLC/prolanf/utf directory.
2. Rebuild the indexes as follow
proutil DBName -C idxbuild all -cpinternal UTF-8
The correct steps for conversion of an existing Database to Unicode are the following.
0. Perform a backup of the Database
1. proutil DBName -C convchar convert UTF-8
2. Load from Data Dictionary Data Administration the correct Unicode _tran.df located in $DLC/prolanf/utf directory.
3. Rebuild the indexes as follow
proutil DBName -C idxbuild all -cpinternal UTF-8