База данных в локальная

Программы для Программиста

Главная
Карта сайта
CodeGear RAD Studio 2010 Architect
Delphi 2007 for Win32 incl UPDATE1
Delphi 7 Lite Full Edition 7.3.3.5
Borland Delphi 10 Lite v3.0
Delphi 2007 for PHP
Delphi 2007 for PHP ACADEMIC EDITION
DialogBlocks 4.19
Hex-Rays Decompiler v1.0 for IDA Pro
ID Executable Password 1.2
InstallShield 2008 Premier Edition
Intel Visual Fortran Compiler Pro 10.0.027
Microsoft Virtual PC 2007
Microsoft Visual FoxPro v.9.0 Professional
NUnit v2.2.0.0 Unit Testing Framework
NuSphere PhpED IDE 5.0
Oracle Maestro 7.10
Rave Reports Borland Edition
Restorator 2007.3.70.1729 Русская версия
Setup Studio 1.0.8
Syser Debugger 1.95
UltraEdit-32 13.20a
Visual Assist 10.4.1619.0
Wise Owl Demeanor for .NET Personal Edition
X-Ways WinHex v14.6

Все программы проверенны Антивирусом Касперский 2012
Счётчик
Назад

Поиск данных
В таблице не настроено отображение полей - поле Key не скрыто, отличается ширина полей. Всё это нужно исправить, но сначало сделаем как было. Выделите сетку DBGrid1 и перейти в объектный инспектор. Изменить свойство DataSource на DataModule1.DataSource1.

А вот теперь переходи в модуль данных DataModule и дважды щёлкни покомпоненту FindQuery. В появившемся окне щёлкни правой кнопкой мыши и выбери пункт меню «Add all fields». В редакторе должны отобразиться все поля нашей таблицы. Теперь дважды щёлкните по компоненту BookTable, чтобы отобразить окно свойств нашей уже настроенной таблицы. Расположи оба окна рядом с друг другом, чтобы всегда их видеть. Выделить первое свойство в редакторе свойств таблицы BookTable, запомнить их, перейти в редактор свойств полей запроса и сделать там те же настройки.

Рисунок24

Когда перенесёте все свойства (не забудьте создать поисковое поле для поля «Город»), можете снова посмотреть на результат используя сетку главного окна. Только опять верните всё на обратно. Теперь результат вообще не должен отличаться.

Теперь создадим новую форму, для нашего SQL запроса, и назовём её FindResultForm. Чтобы окно видело таблицы, к нему надо подключить наш модуль данных – DataModul1. Для этого используйте уже знакомое меню File-Use Unit. Теперь брось на форму сетку DBGrid c закладки Data Controls палитры компонентов и растянуть её по всей форме (в свойстве Align выбрать alClient). Перейдите в объектный инспектор и измени свойство DataSource на DataModule1.FindSource, чтобы увидеть в сетке результат запроса.

На главную форму надо добавить, последней, кнопку Найти, по нажатию которой и запускаться поиск.

Рисунок25

Выделим компонент FindQuery и дважды щёлкнем по свойству SQL. В редакторе запроса введём следующий запрос:

 SELECT *
 FROM Справочник
 WHERE Телефон LIKE :Telephone

Здесь написан практически тот же запрос, что мы уже использовали. Единственная разница – вместо параметра TelEdit.Text стоит :Telephone. Что это такое? Это переменная, о чём говорит двоеточие вначале имени. Переменная в SQL запросе оформляется вот так - :Telephone.

После ввода запроса надать кнопку OK и перейти на свойство Parameters. Откроется окно.

Рисунок26

Описанный в запросе параметр автоматически попадает сюда. Выдели параметр Telephone и посмотрите на его свойства в объектном инспекторе.

В свойстве DataType указать тип переменной. В нашем случае будетстрока с номером телефона, поэтому выбрать из списка тип ftString. В свойстве Value можно указать значение по умолчанию. Попробуйте указать там любой номер телефона из вашей базы и сделать компонент FindQuery активным. Теперь откройте окно, которое должно отображать результат поиска и посмотрите на сетку, в которой уже отображаться результат поиска.

По нажатию кнопки «Найти» пишем следующий код:

procedure TForm1.NaitiClick(Sender: TObject);
begin
  DataModule1.FindQuery.Active:=false;
  DataModule1.FindQuery.Parameters.
  ParamByName('Telephone').Value:=TelEdit.Text;
  DataModule1.FindQuery.Active:=true;
  FindResultForm.ShowModal;
end;

В первой строке делаем компонент запроса неактивным. Во второй в свойтстве Parameters компонента запроса использем метод ParamByName.В качестве единственного параметра этому методу нужно передать имя нашего параметра. Ну и наконец в свойстве Value мы записываем значение для найдённого параметра.

После этого, запрос можно делать активным, чтобы он выполнился и мы увиделирезультат.

Фильтрация
Последнее, что надо сделать, это для компонента FamEdit создать событиеonChange и написать в нём:

procedure TForm1.FamEditChange(Sender: TObject);
begin
  if Length(FamEdit.Text)>0 then
   DataModule1.BookTable.Filtered:=true
  else
   DataModule1.BookTable.Filtered:=false;
   DataModule1.BookTable.Filter:=
   'Фамилия>'''+FamEdit.Text+'''';
end;

Это и будет фильтрация. Здесь идёт проверка, если в компонент FamEdit содержит текст, то длина строки больше нуля и свойство Filtered:=true иначе Filtered:=false. Ну и в последней строчке идёт сам фильтр по полю Фамилия. Если поставить поставить равно, то фиьтрация будет проходить по набраному слову.

И самое последнее в меню обработайте все события - Добавить запись, Редактировать запись, Удалить запись.

Пример написанной программы вы можете Скачать

Назад
Конструктор сайтов - uCoz