Советы по Delphi


Данные индекса таблицы - часть 2


Вот пример простого For-цикла, использующего в качестве счетчика свойство Count объекта IndexDefs, и извлекающего имя каждого индекса (если какой-либо существует) таблицы, представленной компонентом TTable с именем Table1:

procedure TForm1.ListBtnClick(Sender: TObject);vari: Integer;beginListBox1.Items.Clear;with Table1 do beginif IndexDefs.Count > 0 then beginfor i := 0 to IndexDefs.Count - 1 doListBox1.Items.Add(IndexDefs.Items[i].Name)end;end;end;

Ниже приведен пример, показывающий как можно извлечь информацию об индексах во время выполнения программы с выводом ее в компонент TStringGrid (с именем SG1).

procedure TForm1.FormShow(Sender: TObject);vari: Integer;S: String;beginwith Table1 do beginOpen;{Обновляем объект IndexDefs}IndexDefs.Update;if IndexDefs.Count > 0 then begin{Устанавливаем колонки и строки сетки для соответствия элементам IndexDefs}SG1.ColCount := 4;SG1.RowCount := IndexDefs.Count + 1;{Устанавливаем заголовки колонок сетки согласно именам свойств TIndexDef}SG1.Cells[0, 0] := 'Name';SG1.ColWidths[0] := 200;SG1.Cells[1, 0] := 'Fields';SG1.ColWidths[1] := 200;SG1.Cells[2, 0] := 'Expression';SG1.ColWidths[2] := 200;SG1.Cells[3, 0] := 'Options';SG1.ColWidths[3] := 300;{Цикл с опросом IndexDefs.Items}for i := 0 to IndexDefs.Count - 1 do begin{Заполняем ячейки сетки в текущей колонке}SG1.Cells[0, i + 1] := IndexDefs.Items[i].Name;SG1.Cells[1, i + 1] := IndexDefs.Items[i].Fields;SG1.Cells[2, i + 1] := IndexDefs.Items[i].Expression;if ixPrimary in IndexDefs.Items[i].Options thenS := 'ixPrimary, ';if ixUnique in IndexDefs.Items[i].Options thenS := S + 'ixUnique, ';if ixDescending in IndexDefs.Items[i].Options thenS := S + 'ixDescending, ';if ixCaseInsensitive in IndexDefs.Items[i].Options thenS := S + 'ixCaseInsensitive, ';if ixExpression in IndexDefs.Items[i].Options thenS := S + 'ixExpression, ';if S > ' ' then begin{Отфильтровываем ", "}System.Delete(S, Length(S) - 1, 2);SG1.Cells[3, i + 1] := S;end;end;end;end;end;
<


Начало  Назад  Вперед



Книжный магазин