Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Расширенный поиск по БД (Delphi) [Курсовая]

70K
15 апреля 2011 года
virtiler
1 / / 15.04.2011


Помогите написать код для расширенного поиска по БД (Для курсовой). Нужно сделать так, что бы когда вводишь один параметр, то оно ищет по одному параметру, если вводишь ещё один параметр, то уже по двум и так далее...
Вот та часть кода которую я написал, но с этого ничего толкового не выходит... оно Работает, но это громоздко и можно запутаться.. Не прошу писать весь код, просто помогите разобраться!

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Table1: TTable;
    DBNavigator1: TDBNavigator;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    Query1: TQuery;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    Edit5: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Edit6: TEdit;
    Label8: TLabel;
    Edit7: TEdit;
    Label9: TLabel;
    Edit8: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
fam:string;
kyrs:string;
imja:string;
otchestvo:string;
pol:string;
budjet:string;
god:string;
grupa:string;
begin
fam:=Edit2.Text;
kyrs:=Edit4.Text;
imja:=Edit1.Text;
otchestvo:=Edit3.Text;
pol:=Edit5.Text;
budjet:=Edit6.Text;
god:=Edit7.Text;
grupa:=Edit8.Text;
if (fam='') and (kyrs='') and (name='') and (otchestvo='') and (pol='') and (budjet='') and (god='') and (grupa='')
then ShowMessage('Ââåäèòå õîòÿ áû îäèí ïàðàìåòð äëÿ ïîèñêà.') else
begin
///////////////////ÅÑËÈ ÔÀÌÈËÈß//////////////////////////
if Fam <> '' then
begin

with Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Kod,Name,Fam,Otchestvo,Kyrs,Pol,Budjetnik,Data,Grupa');
SQL.Add('FROM ":mksumdu:mksumdu.db"');
SQL.Add('WHERE');
SQL.Add('(Fam = "'+ fam +'")');
SQL.Add('ORDER BY Fam');
Open;
end;
if Query1.RecordCount <> 0
then DataSource1.DataSet:=Query1
else
begin
ShowMessage('&#205;&#229;&#242; &#228;&#224;&#237;&#237;&#251;&#245;.');
DataSource1.DataSet:=Table1;
end;
end
/////////////////////&#197;&#209;&#203;&#200; &#212;&#192;&#204;&#200;&#203;&#200;&#223;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
else
/////////////////////&#197;&#209;&#203;&#200; &#212;&#192;&#204;&#200;&#203;&#200;&#223; &#200; &#202;&#211;&#208;&#209;//////////////////////////
if (kyrs <> '') and (fam <> '') then
begin

with Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Kod,Name,Fam,Otchestvo,Kyrs,Pol,Budjetnik,Data,Grupa');
SQL.Add('FROM ":mksumdu:mksumdu.db"');
SQL.Add('WHERE');
SQL.Add('(Fam = "'+ fam +'" and Kyrs = "'+ kyrs +'")');
SQL.Add('ORDER BY Fam,Kyrs');
Open;
end;
if Query1.RecordCount <> 0
then DataSource1.DataSet:=Query1
else
begin
ShowMessage('&#205;&#229;&#242; &#228;&#224;&#237;&#237;&#251;&#245;.');
DataSource1.DataSet:=Table1;
end;
end
/////////////////////&#197;&#209;&#203;&#200; &#212;&#192;&#204;&#200;&#203;&#200;&#223; &#200; &#202;&#211;&#208;&#209;\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////&#197;&#209;&#203;&#200; &#202;&#211;&#208;&#209;//////////////////////////
else
begin
if kyrs <> '' then
begin
with Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Kod,Name,Fam,Otchestvo,Kyrs,Pol,Budjetnik,Data,Grupa');
SQL.Add('FROM ":mksumdu:mksumdu.db"');
SQL.Add('WHERE');
SQL.Add('(Kyrs = "'+ kyrs +'")');
SQL.Add('ORDER BY Kyrs');
Open;
end;
if Query1.RecordCount <> 0
then DataSource1.DataSet:=Query1
else
begin
ShowMessage('&#205;&#229;&#242; &#228;&#224;&#237;&#237;&#251;&#245;.');
DataSource1.DataSet:=Table1;
end;
end
/////////////////////&#197;&#209;&#203;&#200; &#212;&#192;&#204;&#200;&#203;&#200;&#223; &#200; &#202;&#211;&#208;&#209;\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////&#197;&#209;&#203;&#200; &#200;&#204;&#223;//////////////////////////
else
begin
if (fam='') and (kyrs='') then
begin
if imja <> '' then
begin

with Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Kod,Name,Fam,Otchestvo,Kyrs,Pol,Budjetnik,Data,Grupa');
SQL.Add('FROM ":mksumdu:mksumdu.db"');
SQL.Add('WHERE');
SQL.Add('(Name = "'+ imja +'")');
SQL.Add('ORDER BY Name');
Open;
end;
if Query1.RecordCount <> 0
then DataSource1.DataSet:=Query1
else
begin
ShowMessage('&#205;&#229;&#242; &#228;&#224;&#237;&#237;&#251;&#245;.');
DataSource1.DataSet:=Table1;
end;
end;
end;
end;
end;
end;
end;
end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог