Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Какие компоненты добавлять больше?
Всего ответов: 48

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » Alias

Динамически создаваемые псевдонимы
Использование псевдонима для доступа к базе данных обеспечивает независимость программы от размещения данных в системе, позволяет размещать программу работы с данными и базу данных на разных дисках компьютера, в том числе и на сетевом. Вместе с тем, для простых баз данных типичным решением является размещение базы данных в отдельном подкаталоге того каталога, в котором находится программа работы с базой данных. Таким образом, программа работы с базой данных всегда "знает", где находятся данные. При таком подходе можно отказаться от создания псевдонима при помощи BDE Administrator и возложить задачу создания псевдонима на программу работы с базой данных. Причем, псевдоним будет создаваться автоматически во время запуска программы и уничтожаться во время завершения ее работы. Очевидно, что такой подход облегчает администрирование базы данных. 

В качестве иллюстрации сказанного в листинге приведен вариант программы работы с базой данных "Школа", которая для доступа к базе данных использует динамически создаваемый псевдоним. 

unit school3_;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, Db, DBTables, ExtCtrls, DBCtrls, StdCtrls;

type
  TForm1 = class(TForm)
  Table1: TTable; // таблица (вся база данных)
  Query1: TQuery; // запрос (записи БД, удовлетворяющие критерию выбора)
  DataSource1: TDataSource; // источник данных - таблица или запрос
  DBGrid1: TDBGrid; // таблица для отображения БД или результата выполнения запроса
  DBNavigator1: TDBNavigator;
  DBText1: TDBText;
  Button1: TButton; // кнопка запрос
  Button2: TButton; // кнопка Все записи
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  procedure FormActivate(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

// щелчок на кнопке Запрос
procedure TForm1.Button1Click(Sender: TObject);
var
  fam: string[30];
begin
  fam := InputBox('Выборка информации из БД',
  'Укажите фамилию и щелкните на OK.', '');
  if fam <> '' // пользователь ввел фамилию
  then
  begin
  with form1.Query1 do begin
  Close; // закрыть файл-результат выполнения предыдущего запроса
  SQL.Clear; // удалить текст предыдущего запроса
  // записываем новый запрос в свойство SQL
  SQL.Add('SELECT Fam, Name, Class');
  SQL.Add('FROM ":Школа:school.db"');
  SQL.Add('WHERE');
  SQL.Add('(Fam = "' + fam + '")');
  SQL.Add('ORDER BY Name, Fam');
  Open; // активизируем выполнение запроса
  end;

  if Query1.RecordCount <> 0 then
  DataSource1.DataSet := Query1 // отобразить рез-т выполнения запроса
  else begin
  ShowMessage('В БД нет записей, удовлетворяющих критерию запроса.');
  DataSource1.DataSet := Table1;
  end;
  end;
end;

// щелчок на кнопке Все записи
procedure TForm1.Button2Click(Sender: TObject);
begin
  DataSource1.DataSet := Table1; // источник данных - таблица
end;

// активизация формы
procedure TForm1.FormActivate(Sender: TObject);
begin
  with Session do
  begin
  ConfigMode := cmSession;
  try
  { Если файл данных находиться в том же каталоге,
  что и выполняемый файл программы, то в программе
  путь к файлу данных может быть получен из командной
  строки при помощи функции ExtractFilePath(ParamStr(0)).
  В приведенном примере файл данных находиться в подкаталоге
  DATA каталога программы. }

  // создадим временный псевдоним для базы данны
  AddStandardAlias('Школа',
  ExtractFilePath(ParamStr(0)) + 'DATA\',
  'PARADOX');
  Table1.Active := True; // откроем базу данных
  finally
  ConfigMode := cmAll;
  end;
  end;
end;

end.

В рассматриваемом варианте программы предполагается, что база данных содержится в подкаталоге DATA того каталога, в котором находится выполняемый файл программы. Создает псевдоним процедура TForm1.FormActivate. Непосредственное создание псевдонима выполняет процедура AddstandardAlias, которой в качестве параметра передается имя псевдонима и соответствующее ему имя каталога. Так как во время разработки программы нельзя знать, в каком каталоге будет размещена программа работы с базой данных и, следовательно, подкаталог базы данных -DATA, имя каталога определяется во время работы программы путем обращения к функциям ParamStr(0) и ExtractFilePatch. Значение первой -полное имя выполняемого файла программы, второй — путь к этому файлу. Таким образом, процедуре AddstandardAiias передается полное имя каталога базы данных.

Категория: Alias | Добавил: Skinner (04.07.2008)
Просмотров: 456 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2024 Хостинг от uCoz