Суббота
16.12.2017
21:36


Форма входа

Приветствую Вас Гость | RSS
Borland Delphi 7
Главная Регистрация Вход
Главная » 2009 » Март » 22 » Создание базы данных в Delphi, без сторонних БД (Часть 2)
Создание базы данных в Delphi, без сторонних БД (Часть 2)
08:10
Здравствуйте Delphi'сты и им сочувствующие. 

В предыдущей статье о создании базы данных в 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'; 
…..


обсуждения на форуме.
Категория: Статьи участников клуба | Просмотров: 53879 | Добавил: delphi | Рейтинг: 0.0/0 |
Всего комментариев: 201 2 »
20  
When you think about the term the word love, installing relation to its a captivating romance together with yet another, however , to be a emotion that may be engendered should you have miltchmonkey an even better association on your own far too : or perhaps as the a sense larger unity with your family or maybe human beings -- the idea will become far more superior that anybody is seeking in everyday life is usually really enjoy.

19  
виновата за неотвязность. много с тех пор воды утекло разыскивал вменяемое представление вкладов, их динамики. Для этих кто не раскусывает, это не так без затей. На горизонтах интернета в навал чего есть. Но вменяемой отчету о вкладах не так будь здоров.
дальше ссылка на заметку. вероятно кому-то из вас пригодится.

Если не туда разместил пост переместите пожалуйста. Благодарю.
http://rusbanksite.ru/%D0%B2%D1%8B%D0%B3%D0%BE%D0%B4%D0%BD%D1%8B%D0%B5-%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D 1%8B/ - Исключительно у нас вы посчитаете банковские вклады которые могут помочь вас и вашим наличным средствами

18  
Мне, если честно, понравилось

17  
Данный пост — одно из немногих исключений, когда читаешь с удовольствием и что-то для себя выносишь. Спасибо автору. Добавлю в избранноеhttp://voronezh.recikl.ru/ - . :)

16  
Помогите советом. Пару дней назад решился подкупать в онлайн аптеке порядком препаратов. Ради себя да и для жены тоже.
Аптеку нашел через сего сайт.
http://sdfg.freeiz.com/
Понравились цены и бонусы. Там дозволительно покупать значительный обьем почти даром.

Оплатил без проблем. Днесь жду когда прийдет. жду и сомневаюсь. Боюсь что ошибся в чем-то.
А потому прошу совета. Кто покупал через онлайн аптеки? Я сделал всетаки правильно?

P.S. Господа модераторы. Извините ежели написал не туда. Перенесите тему в планомерный раздел. Спасибо.

15  
ОДНОКЛАССНИКИ ЗНАКОМСТВА

14  
Желаете создать личный бизнес, какой мог бы сбывать сам себя -любому заинтересовавшемуся им?
У самых энергичных интернет пользователей, пользуется высоким спросом - предлагающий продукт, бизнес.
Подробнее ознакомиться о предложении на нашем сайте
http://inweb-24.com/

13  
ygfkj

12  
Должен признать, тот кто писал ништяк накропал.

11  
del plz erorr

1-10 11-20
Имя *:
Email *:
Код *:
Меню сайта

Разделы новостей
Программные обеспечения [6]
Учебники и справочники Delphi [15]
Лабораторные работы [2]
Статьи участников клуба [36]
Советы и трюки [1]

Календарь новостей
«  Март 2009  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Поиск

Друзья сайта

Мини-чат

Наш опрос
Какой раздел нужно добавить на сайт и на форум?
Всего ответов: 56

Статистика

Copyright MyCorp © 2017