Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2010, 18:16   #1
ozarnik585
 
Регистрация: 10.03.2010
Сообщений: 6
По умолчанию Фильтрация данных по запросу из БД

Всем доброго времени суток!
Возникла не большая проблема с фильтрацией данных в моей базе данных, не знаю как её реализовать.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,
  Buttons, Mask, ComCtrls;

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    DataSource1: TDataSource;
    Query1: TQuery;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    GroupBox2: TGroupBox;
    Edit2: TEdit;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox5Click(Sender: TObject);

  private
    { Private declarations }
    Procedure Setfilter;
    Procedure Setfilter2;
    Function Filteropts: tfilteroptions;
    Function Filterstr: string;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

 Function IsValidDate (s:string):boolean;
Begin
Try
Strtodate(s);
Result:=true;
Except
Result:=false;
End;
End;

 Function Tform1.Filterstr: string;
Begin
Result:='';
If Length (Edit1.Text) >0 then
Begin
Result:='Naimenovanie_Fish'+Edit1.Text+'''';
End;

 end;

 Function tform1.filteropts :tfilteroptions;
Begin
If checkbox1.Checked then result:=[fonopartialcompare];
If checkbox2.Checked then result:=[focaseinsensitive];
End;

Procedure Tform1.Setfilter ;
Begin
If Checkbox3.Checked then
With Query1 do
Begin
Filteroptions:=Filteropts;
Filter:=Filterstr;
Filtered:=True;
End
Else
Query1.Filtered:=False;
End;


procedure TForm1.Button1Click(Sender: TObject);
Var  Locopts:   tlocateoptions;
Begin
Locopts:=[ ];
If Checkbox1.Checked then locopts:=locopts+[lopartialkey];
If Checkbox2.Checked then locopts:=locopts+[locaseinsensitive];
Query1.Locate('Naimenovanie_Fish', Edit1.Text, locopts);
  end;



Procedure TForm1.Setfilter2;   // Фильтрация данных.
Var  Locopts:   tlocateoptions;
Begin
If CheckBox5.Checked then
With Query1 do
Begin
Filteroptions:=Filteropts;
Filter:=Filterstr;
Filtered:=True;
End
Else
Query1.Filtered:=False;
End;

procedure TForm1.CheckBox5Click(Sender: TObject);
begin
Setfilter2;
end;

end.
Вот ссылка на исходник: http://file.qip.ru/file/122760997/fe...hi_150310.html

Последний раз редактировалось Stilet; 16.03.2010 в 08:44.
ozarnik585 вне форума Ответить с цитированием
Старый 15.03.2010, 18:58   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Возникла не большая проблема с фильтрацией данных в моей базе данных, не знаю как её реализовать.
и что за проблема?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 15.03.2010, 19:15   #3
ozarnik585
 
Регистрация: 10.03.2010
Сообщений: 6
По умолчанию

Мне надо что бы он оставлял одну запись которую я ввожу а он даже не производит поиск .
ozarnik585 вне форума Ответить с цитированием
Старый 15.03.2010, 20:07   #4
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Не в праве навязывать, но этот код, который мне понравился по поиску в базе.
Код:
procedure TForm1.RzEdit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

    with ADOQuery1 do begin
       Close;
       SQL.Clear;
       SQL.Add('SELECT DISTINCT Фамилия,Улица,дом,телефон FROM tab1');
       SQL.Add('WHERE Фамилия LIKE'+quotedstr(rzedit1.text+'%'));
       SQL.Add('ORDER BY Фамилия');
       Open;
end;
  end;
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 15.03.2010, 20:16   #5
ozarnik585
 
Регистрация: 10.03.2010
Сообщений: 6
По умолчанию

Ну мне щас не хочеться новшество испытывать. Мне надо просто подправить мой код...
ozarnik585 вне форума Ответить с цитированием
Старый 15.03.2010, 20:17   #6
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

тогда я тут не в силах.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 15.03.2010, 22:13   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

чтобы сказать надо как минимум знать что вводите а лучше еще и знать что хотите сделать с примером полей таблицы и данных а не просто
Цитата:
Мне надо что бы он оставлял одну запись
Filrer + F1 =
For example, the following filter condition displays only those records where the State field is 'CA' or 'MA':

State = 'CA' or State = 'MA'

насколько это соответствует тому что у вас.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 16.03.2010, 09:58   #8
ozarnik585
 
Регистрация: 10.03.2010
Сообщений: 6
По умолчанию

У меня на форме отображен запрос из бд, там несколько класс рыб и информация о них. Фильтрация одлжна оставлять одну запись когда ввожу название рыбы.
ozarnik585 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация данных по запросу из БД ozarnik585 Помощь студентам 0 15.03.2010 18:10
Фильтрация данных skiffter Помощь студентам 10 17.11.2009 16:44
фильтрация данных elen1khp БД в Delphi 6 28.09.2009 20:01
Фильтрация данных Gladiator БД в Delphi 4 23.05.2009 12:37
Фильтрация данных в delphi7 @Akulina21 Компоненты Delphi 1 31.03.2009 16:30