Лабораторная работа №4

Интегрирование реализованных оболочек с существующими автоматизированными информационными системами.

Задача - разработать удобный и эффективный интерфейс запросов между средой визуального программирования ( Visual C , Delphi ) и СУБД ( visual Fox Pro , SQL server ).

В базе данный должен хранится список фактов и список правил. База данных служит для накопления и хранения достаточно большого множества фактов и правил. Такие множества позволят тестировать механизм вывода по сложным запросам. Таким образом, для интерпретации работы по целевым запросам с использованием правил может быть задействован механизм обратного вывода, разработанный в лабораторной работе № 1. Полученные при работе механизма вывода новые факты и правила также сохранятся в базе данных.

Для обеспечения работы механизма прямого и обратного вывода по запросу по ключевому слову выбирается подсписок требуемых фактов или правил.

1-ое : в среде visual Fox Pro создается структура файла базы данных типа DBF .

2-ое : создать форму запроса в среде визуального программирования.

В примере используется среда Delphi 6, закладка палитры компонентов ADO ( ActiveX Data Objects ). Выбраны четыре компонента:

- TadoConnection -подключение к базе данных Fox Pro ;

- TadoTable -подключение таблицы базы данных;

- TadoTable -подключение на результат запроса по ключевым словам(вход таблицы);

- TadoSource(Data Access)- связывает TadoTable и Dgrid, TDgrid ( TDControls )-отображение таблицы;

- OpenDialog -для настройки пути к Базе Данных.

Программный код форы запроса приведен ниже:

unit formZapros;

interface

uses

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

type

TFormbd = class(TForm)

BitBtn1: TBitBtn;

ADOConnection1: TADOConnection;

vhodtable: TADOTable;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

Choicefilter: TComboBox;

indexed: TADOCommand;

indexedtable: TADOTable;

Listfacts: TListBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

OpenDatabase: TOpenDialog;

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure ChoicefilterChange(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Formbd: TFormbd;

implementation

{$R *.dfm}

procedure TFormbd.BitBtn1Click(Sender: TObject);

begin

close;

end;

procedure TFormbd.FormCreate(Sender: TObject);

var i:integer;

begin

OpenDatabase.Execute;

// Пишем строку подключения, не используя инспектор объектов.

ADOConnection1.ConnectionString:='Provider=MSDASQL.1; Persist Security Info=False; Extended Properties="DSN= База данных Visual FoxPro; UID=; '+ 'SourceDB='+OpenDatabase.FileName+ '; SourceType=DBC; Exclusive=No; BackgroundFetch=Yes; Collate=Machine; Null=Yes; Deleted=Yes;"';

ADOConnection1.Connected := true;

vhodtable.Active:=true;

vhodtable.First;

Listfacts.Clear;

// Формирование таблицы Цикл по числу записей таблицы.

indexedtable.Recordset:=indexed.Execute;

indexedtable.First;

for i:=1 to indexedtable.RecordCount do

begin

indexedtable.RecNo:=i;

ChoiceFilter.AddItem(indexedtable[' ключевые _ слова '],indexedtable);

end;

end;

// Процедура выбора.

procedure TFormbd.ChoicefilterChange(Sender: TObject);

var i:integer;

begin

vhodtable.First;

Listfacts.Clear;

for i:=1 to vhodtable.recordcount do

begin

vhodtable.RecNo:=i;

if vhodtable[' ключевые _ слова ']=choicefilter.Text

then Listfacts.Items.Add(vhodtable[' факты ']);

end;

end;

end.

Результат работы такого интерфейса по запросам приведен ниже:

Исходя из конкретной конфигурации программного обеспечения компьютера, в строке подключения программы запроса прописывается тот или иной драйвер, указанный в BDE Administrator - e .