Dbase является причиной бОльшего количества 'special case' в BDE, чем таблицы
SQL и Paradox из-за поддержки "Выражений в Индексах" (Expressions in indexes) и
т.д., и т.п..
- Создание/пересоздание индекса
- DbiRegenIndexes( Table1.Handle ); { Регенерация всех индексов }
- create index (зависит от существования выражения)
|
|
if (( Pos('(',cTagExp) + Pos('+',cTagExp) ) > 0 )
then
Table1.AddIndex( cTagName, cTagExp, [ixExpression]) (<- ixExpression - _литерал_)
else
Table1.AddIndex( cTagName, cTagExp,
[]); |
- Мастер/Деталь связан с выражением дочернего индекса
- вызов BDE процедуры DbiLinkDetailToExp() вместо обычной DbiLinkDetail()
- Упаковка таблиц
|
|
with Table1 do
StrPCopy( TName, TableName );
Result := DBIPackTable( DbHandle, Handle, TName, szDBASE, TRUE
); |
- Установка видимости удаленных записей, on/off (т.е. dBase SET DELETED
ON/OFF)
|
|
DbiSetProp(
hDBIObj(Table1.Handle), curSOFTDELETEON, LongInt(bValue));
|
- Установка символа частичного/точного соответствия, on/off (т.е. dBase SET
EXACT ON/OFF)
|
|
DbiSetProp(
hDBIObj(Table1.Handle), curINEXACTON, LongInt(bValue)); | |