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('Íåò äàííûõ.');
DataSource1.DataSet:=Table1;
end;
end
/////////////////////ÅÑËÈ ÔÀÌÈËÈß\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
else
/////////////////////ÅÑËÈ ÔÀÌÈËÈß È ÊÓÐÑ//////////////////////////
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('Íåò äàííûõ.');
DataSource1.DataSet:=Table1;
end;
end
/////////////////////ÅÑËÈ ÔÀÌÈËÈß È ÊÓÐÑ\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////ÅÑËÈ ÊÓÐÑ//////////////////////////
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('Íåò äàííûõ.');
DataSource1.DataSet:=Table1;
end;
end
/////////////////////ÅÑËÈ ÔÀÌÈËÈß È ÊÓÐÑ\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////ÅÑËÈ ÈÌß//////////////////////////
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('Íåò äàííûõ.');
DataSource1.DataSet:=Table1;
end;
end;
end;
end;
end;
end;
end;
end.
Расширенный поиск по БД (Delphi) [Курсовая]
Помогите написать код для расширенного поиска по БД (Для курсовой). Нужно сделать так, что бы когда вводишь один параметр, то оно ищет по одному параметру, если вводишь ещё один параметр, то уже по двум и так далее...
Вот та часть кода которую я написал, но с этого ничего толкового не выходит... оно Работает, но это громоздко и можно запутаться.. Не прошу писать весь код, просто помогите разобраться!
Код: