Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Создание программ обработки данных по SQL – запросам





Помощь в ✍️ написании работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Цель работы: освоить создание SQL–запросов в Delphi XE4 и их использование в программах.

Порядок выполнения работы

Рисунок 4.1 Доработанная программа из предыдущей работы, позволяющая осуществлять поиск по базе данных

Рисунок 4.2 Модальное окно поиска

Рисунок 4.3 Окно представления базы в виде формы, включающее панель навигации

Вывод:в ходе лабораторной работы освоил создание SQL–запросов в Delphi XE4 и их использование в программах.


 

Приложение 1. Исходные коды программы

Программа 1. Вывод базы и поиск по ней.

unit Unit1;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, Data.DB,

Data.Win.ADODB, Vcl.StdCtrls;

type

TForm1 = class(TForm)

ADOConnection1: TADOConnection;

ADODataSet1: TADODataSet;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Button1: TButton;

Button2: TButton;

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.ShowModal;

if Form2.ModalResult = mrOk then

begin

ADODataSet1.Close;

ADODataSet1.CommandText := 'SELECT * FROM contacts WHERE nane Like ''%' + Form2.Edit1.Text + '%''';

ADODataSet1.Open;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

ADODataSet1.Close;

ADODataSet1.CommandText := 'SELECT * FROM contacts ORDER BY nane';

ADODataSet1.Open;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

try

ADOConnection1.Open;

ADODataSet1.Active := True;

except

on e:Exception do begin

DBGrid1.Enabled := False;

MessageDlg('not found contacts.mdb', mtError, [mbOk],0);

end;

end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if DBGrid1.EditorMode then

begin

ADODataset1.UpdateBatch(arCurrent);

end;

end;

end.

Программа 2. Представление базы в виде формы

unit Unit1;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.ExtCtrls,

Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls, Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids;

type

TForm1 = class(TForm)

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Image1: TImage;

ADOConnection1: TADOConnection;

ADODataSet1: TADODataSet;

DataSource1: TDataSource;

DBNavigator1: TDBNavigator;

OpenDialog1: TOpenDialog;

procedure FormActivate(Sender: TObject);

procedure ADODataSet1AfterScroll(DataSet: TDataSet);

procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Image1Click(Sender: TObject);

procedure ADOConnection1BeforeConnect(Sender: TObject);

private

{ Private declarations }

aPath: string;

procedure ShowImage(img: string);

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses Jpeg, IniFiles, StrUtils;

procedure TForm1.FormActivate(Sender: TObject);

begin

aPath := 'G:\школьное\БД\Фед_ЛР';

try

ADOConnection1.open;

ADODataset1.open;

except

on e:Exception do begin

DBEdit1.Enabled := False;

DBEdit2.Enabled := False;

DBNavigator1.Enabled := False;

MessageDlg('Ошибка доступа к файлу БД: '+

aPath + 'contacts.mdb', mtError, [mbOk], 0);

end;

end;

end;

procedure TForm1.ADOConnection1BeforeConnect(Sender: TObject);

var

p1,p2: integer;

IniFile: TIniFile;

fn: string;

st: string;

begin

p1 := Pos('.exe', Application.ExeName);

fn := Copy(Application.ExeName, 1, p1-1) + '.ini';

IniFile := TIniFile.Create(fn);

aPath := IniFile.ReadString('data','aPath','');

if aPath = '' then

MessageDlg('Нет файла: '+ fn ,mtError,[mbOk],0);

st := ADOConnection1.ConnectionString;

p1 := Pos('Data Source', st) ;

p2 := PosEx(';',st,p1);

Delete(st,p1,p2-p1);

Insert('Data Source='+ aPath+ 'contacts.mdb',st,p1);

ADOConnection1.ConnectionString := st;

end;

procedure TForm1.ADODataSet1AfterScroll(DataSet: TDataSet);

var

img: string;

begin

if ADODataSet1.RecNo <> -1 then

begin

if ADODataSet1.FieldValues['img'] <> Null then

img := ADODataSet1.FieldValues['img']

else

img := '' ;

ShowImage(img);

end

end;

procedure TForm1.ShowImage(img: string);

begin

if img = '' then

img := 'nobody.jpg';

try

Image1.Picture.LoadFromFile(aPath+img);

finally

end; end;

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

begin

case Button of

nbInsert, nbDelete, nbEdit:

begin

DBEdit1.Readonly := False;

DBEdit2.Readonly := False;

DBEdit3.Readonly := False;

Image1.Enabled := True;

if Button = nbInsert then

ShowImage('nobody.jpg');

end;

nbPost, nbCancel:

begin

DBEdit1.Readonly := True;

DBEdit2.Readonly := True;

DBEdit3.Readonly := True;

Image1.Enabled := False;

end;

end;

end;

procedure TForm1.Image1Click(Sender: TObject);

var

nFileName: string;

begin

OpenDialog1.FileName := '*.jpg';

if OpenDialog1.Execute then

begin

nFileName := ExtractFileName(OpenDialog1.FileName);

CopyFile(PChar(OpenDialog1.FileName),

PChar(aPath + 'images\'+ nFileName), false);

ShowImage(nFileName);

ADODataSet1.FieldValues['img'] := nFileName;

end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if ADODataSet1.State = dsEdit then

begin

ADODataset1.UpdateBatch(arCurrent);

end; end; end.

Доверь свою работу ✍️ кандидату наук!
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой



Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.