скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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, []);

  1. Мастер/Деталь связан с выражением дочернего индекса
    • вызов BDE процедуры DbiLinkDetailToExp() вместо обычной DbiLinkDetail()
  2. Упаковка таблиц

with Table1 do
  StrPCopy( TName, TableName );
Result := DBIPackTable( DbHandle, Handle, TName, szDBASE, TRUE );

  1. Установка видимости удаленных записей, on/off (т.е. dBase SET DELETED ON/OFF)

DbiSetProp( hDBIObj(Table1.Handle), curSOFTDELETEON, LongInt(bValue)); 

  1. Установка символа частичного/точного соответствия, on/off (т.е. dBase SET EXACT ON/OFF)

DbiSetProp( hDBIObj(Table1.Handle), curINEXACTON, LongInt(bValue)); 






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ


|  По вашему желанию недвижимость севастополя по низкой цене. Гарантированно.  |

Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook