Параметры индекса определяются свойством

property Cptions: TIndexOptions;
Для индекса возможны сочетания следующих параметров: О ixPrimary - первичный индекс;
□ ixunique - значения индекса уникальны;
□ ixDescending - индекс сортирует записи в обратном порядке;
• ixCaseinsensitive - индекс сортирует записи без учета регистра символов;

□ ixExpression - в индексе используется выражение (для индексов dBASE); О ixNonMaintained - индекс не обновляется при открытии таблицы.

Метод

procedure Assign (ASource: TPersistent);
override;

заполняет свойства объекта значениями аналогичных свойств объекта ASource.

Использование описаний индексов

Описания индексов наряду с описаниями полей (см. гл. 13) также используются при создании новых таблиц БД. Для каждого планируемого индекса перед вызовом метода CreateTable необходимо создать или скопировать из существующего набора данных соответствующее описание. Тогда при создании таблицы индексы будут добавлены автоматически:

with Tablel do begin
DatabaseName := 'DBDEMOS';
TabldType := ttParadox;
TableName := 'DemoTable';

(Создание огмсаний полей}

with IndexDefs do begin Clear;
AddlndexDef;
with Items[0] do begin
Name := 1' ;
Fields := 'Fieldl';
Cptions := [ixPrimary, ixUnique];
end;
AddlndexDef;
with Items[1] do begin
Name := 'Secondlndex';
Fields := 'Fieldl;Field2';
Options := [ixCaselnsensitive];
end;
end;
CreateTabie;
end;

При создании огтасаний индексов использован метод AddlndexDef, который при каждом вьоове добавляет к списку items объекта TIndexDefs новый объект TindexDef. Таким образом сначала создается первичный индекс (в таблицах Paradox он не имеет имени), затем вторичный индекс Secondindex. Для каждого описания обязательно определяются составляющие индекс поля и параметры индекса (свойства Fields и options).

Параметры запросов и хранимых процедур

Свойство Params представляет собой набор изменяемых параметров запроса или хранимой процедуры, а также набор объектов TParam, инкапсулирующих отдельные параметры.

Рассмотрим следующий запрос SQL:

SELECT SaleDat, OrderNo FRCM Orders

WHERE SaleDat >= '01.08.2001' AND SaleDat <= '31.08.2001'

В нем осуществляется отбор номеров заказов, сделанных в августе 2001 года. Теперь вполне естественно было бы предположить, что пользователю может понадобиться получить подобный отчет за другой месяц или за первые десять дней августа.

В этом случае можно поступить так:

procedure TForml. FormCreate (Sender: TObject); begin with Queryl do

begin
SQL[0] := 'SELECT PartDat, ItemNo, ItemCount, InputPrice';
SQL[1] := 'FROMParts';
SQL[2] := 'WHERE PartDat>= "01. 08 . 2001"
AND PartDat<="
31. 08 . 2001"
';
end;
end;
procedure TForml.RunBtnClick(Sender: TObject);
begin with Queryl do begin if Active then Close;

SQL[2] := 'WHERE PartDat>= '+chr(39)+DatelEdit.Text+chr(39)+

' AND PartDat<=' +chr (39) +Date2Edit. Text+chr (39) ;
Open;
end;
end;

При создании формы в методе FormCreate задается текст запроса. Для этого используется свойство SQL. При щелчке на кнопке RunBtn, в соответствии с заданными в однострочных редакторах DatelEdit и Date2Edit датах, изменяется текст запроса. Метод FormCreate приведен только для того, чтобы обозначить первоначальный текст запроса, этот текст вполне можно задать


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс