EugeneBoss3

Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Народ! Помогите расшиться с программным кодом выдает ошибку при создании индекса, типа "уже используется" или "индекс не найден". Не пойму где ошибка в коде. Компонент EhLib и Accuracer ================================================= procedure TForm1.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); var iColumn: Integer; sIndexOld, sIndexNew, sIndexFieldNamesOld : string; bActive, bExclusive: Boolean; begin iColumn := Column.Field.Index; sIndexNew := Column.FieldName; sIndexOld := atbUsers.IndexFieldNames; if (Column.Title.SortMarker = smNoneEh) then Column.Title.SortMarker:= smDownEh; try with atbUsers do begin bActive := Active; bExclusive := Exclusive; Close; // таблица должна быть открыта в монопольном (exclusive) режиме Exclusive := True; Open; IndexDefs.Update; // очистить список индексов DeleteAllIndexes; case Column.Title.SortMarker of smDownEh: begin // создание индекса AddIndex('NewIndex', sIndexNew, []); IndexFieldNames:= sIndexNew; Column.Title.SortMarker:= smUpEh; end; smUpEh: begin // создание индекса AddIndex('NewIndex', sIndexNew, [ixDescending]); IndexFieldNames:= sIndexNew; Column.Title.SortMarker:= smDownEh; end; end; IndexDefs.Update; Close; Exclusive := bExclusive; Active := bActive; end; finally if not (atbUsers.Active) then atbUsers.Active := True; atbUsers.First; end; end; ================================================= |