Базы данных и знаний. Проектирование баз данных по технологии "клиент-сервер" и разработка клиентских приложений. Токмаков Г.П. - 79 стр.

UptoLike

Составители: 

- 79-
3. Дерево поддерживает режим «перетаскивания», то есть вы можете пере-
мещать мышкой его элементы, формируя новые связи между ними. Например,
вы можете перенес ти мышкой элемент DataSoursel на ветку «Queryl» (рис.
56). Этим вы подключите компонент Queryl к источнику данных DataSoursel.
Пр и этом у компонента DataSoursel устанавливается свойство DataSet =
Queryl.
Таким же образом можно перенести ветку Queryl на элемент DataBasel
(рис. 57). В результате мы получаем дерево, содержащее объект Session с име-
нем Default, который, в свою очередь, содержит БД TEACHER. Доступ к этой
БД осуществляется через компоненты Queryl и DataSoursel. Пр и обращении к
содержащимся в модуле данных компонентам для них указывается составное
имя, в которое, кроме имени компонента, входит также имя модуля данных.
Мы привели стандартную схему создания модуля данных. Но как мы опи-
сали выше, наша программа содержит оболочку, которая по требованию поль-
зователя вызывает DLL-библиотеки, с размещенными на них формами. Обо-
лочка приложения, содержащая модуль данных, создает только соединение с
БД, поэтому в модуле данных мы оставим тол ько компонент Database1. А соб-
ственно источник данных и прочие компоненты типа Query и TStoredProc
вынесем в DLL. В результа те модуль данных будет выглядеть так :
unit uDM;
interfасе
uses
Windows, Messages, SysUtils,. Classes, Graphics, Controls,
Forms, Dialogs, DBTables, DB, BDE;
type
TfDM = class(TDataModule)
Databasel: TDatabase;
private
{ Private declarations }
public
{ Public declarations }
function GetSessionHandle: HDBIDB;
end;
var
fDM: TfDM;
implementation
{$R *.dfm)
function TfDM.GetSessionHandle: HDBIDB;
begin
result:=Session.Databases[Session.DatabaseCount-1].Handle;
end;
end.
Обратите внимание, что для получения описателя (дескриптора) БД в мо-
дуле UDM создана специальная функция - метод GetSessionHandle. Выражение
Session.Databases[Session.DatabaseCount-1]
является указателем на последнюю БД в массиве (в нашем случае она
является
и единственной).