Icon View Incident Report

Serious Serious
Reported By: Rita Bosse [Rita Bosse Software GmbH]
Reported On: 3/28/2014
For: Version 4.37 Build 3
# 4026 German Locale with Text Indexes Containing Both the ß Character and SS Characters Causes Corruption

We are getting the error:

DBISAM Engine Error # 8965 Index page buffers corrupt in the table 'artikel'

This can be reproduced with the following source code.

The error only occurs if the string contains a "ß" and its length is 50 chars. The locale of the table is 1031 (Deutsch (Deutschland)).



  tb.exclusive := True;
  tb.emptyTable;
  tb.RepairTable;
  tb.exclusive := false;
  tb.Open;
  try
    tb.insert;
    tb.FieldByName('SortenNr').AsInteger := 1442;
    tb.FieldByName('BotName').AsString := 'Corylus av.''Rotblättrige Zellernuss''';
    tb.Post;
    if tb.FindKey([1442]) then
    begin
      tb.Edit;
      tb.FieldByName('BotName').AsString := 'Corylus avellana ''Rotbl.Zellernuß''  (= Fuscorubra)';
// this is OK
//    tb.FieldByName('BotName').AsString := 'Corylus avellana ''Rotbl.Zellernus''  (= Fuscorubra)';
//    tb.FieldByName('BotName').AsString := 'Corylus avellana ''Rotbl.Zelernuß''  (= Fuscorubra)';
	  tb.Post;
    end;
    if tb.FindKey([1442]) then
    begin
      tb.Edit;
      tb.FieldByName('BotName').AsString := 'Ligustrum delavayanum  (= L.ionandrum)';
      tb.Post;
    end;
  finally
    tb.Close;
  end;



Comments Comments
The error was caused by an optimization in the text index key modification code that ignored updates where a word already exists in the text index. However, the code was not checking to see if the two words were *exactly* the same, character-by-character, or whether they were two words that were equivalent according to the current locale. The end result was that the text indexing code would leave in an old word that used the 'SS' characters, even though there was a new word that used the 'ß' character instead.


Resolution Resolution
Fixed Problem on 4/3/2014 in version 4.38 build 2


Products Affected Products Affected
DBISAM Additional Software and Utilities
DBISAM ODBC Client-Server
DBISAM ODBC Client-Server with Source
DBISAM ODBC Standard
DBISAM ODBC Standard with Source
DBISAM ODBC Trial
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source
DBISAM VCL Trial

Image