Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » Базы Данных

DBase и 'особые случаи' BDE

Dbase является причиной бОльшего количества 'special case' в BDE, чем таблицы SQL и Paradox из-за поддержки "Выражений в Индексах" (Expressions in indexes) и т.д., и т.п..

  1. Создание/пересоздание индекса
    • DbiRegenIndexes( Table1.Handle ); { Регенерация всех индексов }
    • create index (зависит от существования выражения)


         
      if (( Pos('(',cTagExp) + Pos('+',cTagExp) ) > 0 ) then
      Table1.AddIndex( cTagName, cTagExp, [ixExpression])  (<- ixExpression - _литерал_)
      else
      Table1.AddIndex( cTagName, cTagExp, []);

  2. Мастер/Деталь связан с выражением дочернего индекса
    • вызов BDE процедуры DbiLinkDetailToExp() вместо обычной DbiLinkDetail()
  3. Упаковка таблиц
       
    with Table1 do
    StrPCopy( TName, TableName );
    Result := DBIPackTable( DbHandle, Handle, TName, szDBASE, TRUE );

  4. Установка видимости удаленных записей, on/off (т.е. dBase SET DELETED ON/OFF)
        DbiSetProp( hDBIObj(Table1.Handle), curSOFTDELETEON, LongInt(bValue));

  5. Установка символа частичного/точного соответствия, on/off (т.е. dBase SET EXACT ON/OFF)
        DbiSetProp( hDBIObj(Table1.Handle), curINEXACTON, LongInt(bValue)); 
Категория: Базы Данных | Добавил: DelphiAiX (20.05.2012)
Просмотров: 185 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]