svp писал(а):Также нужно прояснить какие проги его юзают и чем потестировать.
Так SAS.Planet же!
На данный момент структура такая:
Key:
- Код: Выделить всё
TBDBKey = packed record
TileX: Cardinal;
TileY: Cardinal;
end;
Value:
- Код: Выделить всё
TBDBData = record
BDBRecVer : Byte;
TileSize : Cardinal;
TileDate : TDateTime;
TileVer : PWideChar;
TileMIME : PWideChar;
TileDefExt: PWideChar;
TileBody : Pointer;
end;
Собственно, я уже добавил копирование
в кэш Беркли, но столкнулся с проблемой - если выйти из конвертера до окончания процесса, то не вызывается деструктор объектов БД (т.е. как будто нас прибили по Ctr+Alt+Del) и соответственно БД может оказаться битой. Видимо, нужно задействовать транзакции, но я с ними пока не разобрался (там ещё какие-то энвайроменты надо юзать, чтоб включить транзакционность).
Модифицированные исходники (сделал локальный репо, чтобы было видно что я там наизменял), и exe-ха (в папке bin, вместе с беркелевской либой) в аттаче.
В папке include\BerkeleyDB лежит db_h.pas (переведённый заголовочник), и мои юниты с классами обёртками для работы с БД.