(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Создание базы данных в Delphi, без сторонних БД. Часть 2

Источник: programmersclub
Руслан Аблязов

В предыдущей статье о создании базы данных в Delphi, я рассказывал про компонент TClientDataSet, как подключаться к локальной базе данных и создавать новую локальную таблицу. Сегодня я вам расскажу, как фильтровать записи в таблице и индексировать их. Фильтровка записей таблицы это эквивалент SQL запросам. Фильтровка нужна, для того чтобы показать пользователю меньше записей согласно определённому условию (например: показать только тех учеников группы у кого день рождения в июне или в декабре и т.д.). Также фильтрацию можно использовать как поиск некоторой записи в таблице. На практике в большинстве случаев SQL запросы используются именно в таких случаях, какой описан в примере.

     Фильтр задается, как строка и её определяет свойство Filter, а активность фильтра определяет свойство Filtered, соответственно если оно True то записи фильтруются. Фильтр задаётся согласно всем правилам программирования Delphi, к которым вы привыкли. Фильтр имеет очень много функций:

    1.  Арифметические и логические функции и операторы сравнения
    Примеры:
    a.  Population < 100;
    b.  Vozrast > 24 and Rost < 165;
    c.  Stoimost > 300 or Razmer < 400;
    d.  Town <> Moskva
    e.  Ves + Rost > 200;
    f.  Vozrast/Ves > 9;
    2.  Можно выполнят операции над строками
    Примеры
    a.  Last_Name = 'Иван';
    b.  First_Name+Last_Name = 'ИгорьПетров';
    c.  Substring(Last_Name,1,2)= 'Ca';
    3.  Также функции даты и времени
    Примеры
    a.  Year(Birth_Day) = 1986;
    b.  Day(Birth_Day) = 12;
    4.  Используются также операторы Like и In.

    Все возможности фильтрации полностью документированы в файле справки Delphi в разделе Developing Database Applications > Using client datasets > Limiting what records appear.

    Индексацию определяет свойство IndexFieldNames. Для того чтобы упорядочить по возрастанию таблицу по полю Vozrast нужно присвоить свойству IndexFieldNames значение 'Vozrast'. Очень часто индексация нужна тогда, когда пользователь щёлкает на заголовках столбцов компонента DBGrid. 

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
   ClientDataSet1.IndexFieldNames:=Column.FieldName;
end;

    Также можно создать индексы с помощью свойства IndexDefs. Индексы можно создать как во время выполнения, так и в стадии создания базы данных. Во время выполнения Delphi-приложения, для того чтобы создать индекс нужно вызвать метод Add свойства IndexDefs. Первый параметр это имя индекса, второй - имя поля (или полей), третий - опции. Теперь для того чтобы упорядочить таблицу по полю нужно присвоить свойству IndexName имя нужного индекса. Данный метод лучше, чем предыдущий, так как можно быстро переключаться между созданными заранее индексами. Для того чтобы изменить индексы нужно воспользоваться свойством Items свойства IndexDefs, указав порядковый номер индекса. Получить порядковый номер индекса можно через метод свойства IndexDefs IndexOf , указав имя индекса. Например:

    
var
   i:integer;
begin
…..
i:=ClientDataSet1.IndexDefs.IndexOf('i3');
ClientDataSet1.IndexDefs.Items[i].Fields:='Birth_Day';
…..

Читать часть 3

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Embarcadero »
Написать редактору 
 Рекомендовать » Дата публикации: 24.11.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Комплект Dr.Web «Универсальный», 1 год, 5 ПК
Advanced Data Export VCL Suite (with sources) + 1 Year Maintenance
ESET NOD32 Антивирус - лицензия на 2 года на 3ПК
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Kaspersky Endpoint Security для бизнеса – Стандартный Russian Edition. 10-14 Node 1 year Base License
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
СУБД Oracle "с нуля"
ЕRP-Форум. Творческие дискуссии о системах автоматизации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Пишу программы на заказ для студентов (174)
Пишу для студентов на с, с++, паскаль в средах ms visual studio, qt, builder, borland c, delphi....
 
Пишу программы на заказ профессионально (2180)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
И я там был (2)
И я там был, мед пиво пил, по усам текло, а в рот не попало.
 
Пишу программы на Lazarus (19)
Предлагаю разработку программ на заказ. Примеры программ: www.itproportal.ru
 
Написание оптимального кода под Delphi (1)
Delphi выполняет все почти именно так, как должен. Это как раз переизбыток "оптимизации" в...
 
 
 



    
rambler's top100 Rambler's Top100