Лабораторная работа №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 .