по значениям поля набора данных 2 глава




type TPaintPanelEvent = procedure (DBCtrlGrid: TDBCtrlGrid; Index: Integer) of object;

Параметр index указывает номер панели, отображение элементов которой вы­полняется в настоящий момент. Кроме прорисовки, в обработчике события OnPaintPanel можно выполнить другие действия, например, обработку связан­ных с панелью данных.

Использование навигационного интерфейса

Для управления набором данных можно использовать навигатор, который обес­печивает соответствующий интерфейс пользователя. По внешнему виду и орга­низации работы навигатор похож на мультимедийный проигрыватель. В Delphi навигатор представлен компонентом DBNavigator (рис. 6.9).

'ЧЧЧмЫ~1Ч^1хк

Рис. 6.9. Навигатор

Навигатор содержит кнопки, обеспечивающие выполнение различных операций с набором данных путем автоматического вызова соответствующих методов. Со­став видимых кнопок определяет свойство visibleButtons типа TButtonSet, принимающее комбинации следующих значений (в скобках указан вызываемый метод):

□ nbFirst — перейти к первой записи (First);

□ nbPrior — перейти к предыдущей записи (Prior);

□ nbNext — перейти к следующей записи (Next);


Глава 6. Визуальные компоненты для работы с данными


153


П nbLast — перейти к последней записи (Last);

□ nbinsert — вставить новую запись (insert);

□ nbDelete — удалить текущую запись (Delete);

□ nbEdit — редактировать текущую запись (Edit);

□ nbPost — утвердить результат изменения записи (Post);

□ nbCancel — отменить изменения в текущей записи (Cancel);

□ nbRefresh — обновить информацию в наборе данных (Refresh). По умолчанию в навигаторе видимы все кнопки.

Метод BtnClick(index: TNavigateBtn) служит для имитации нажатия кноп­ки, заданной параметром index. Тип TNavigateBtn этого параметра идентичен типу TButtonSet, возможные значения соответствующего параметра которого перечислены выше. В качестве примера приведем строку кода:

DBNavigator.BtnClick(nbNext);

В ней имитируется нажатие кнопки nbNext, вызывающей переход к следующей записи набора данных.

При нажатии кнопки nbDelete может появляться диалоговое окно, в котором пользователь должен подтвердить или отменить удаление текущей записи. По­явлением окна подтверждения управляет свойство ConfirmDelete типа Boolean, по умолчанию имеющее значение True, т. е. окно подтверждения вы­водится. Если при отладке приложения установить это свойство в значение False, то запись будет удаляться без запроса подтверждения.

Свойство Flat типа Boolean управляет внешним видом кнопок. По умолчанию оно имеет значение False, и кнопки отображаются в объемном виде. При уста­новке свойства Flat в значение True кнопки приобретают плоский вид, соответствующий современному стилю.

Подсказку для отдельной кнопки можно установить с помощью свойства Hints типа TString. По умолчанию список подсказок содержит текст на английском языке, который можно заменить на русский, вызвав Строковый редактор (String list editor). Подсказка для навигатора устанавливается через свойство Hint типа string. Напомним, что для отображения подсказок нужно присвоить значение True свойству SnowHint, по умолчанию имеющему значение False.

На практике часто вместо навигатора используются отдельные кнопки Button или BitBtn, при нажатии которых вызываются соответствующие методы управ­ления набором данных. Например, в процедурах:

procedure TForml.ButtonlClick(Sender: TObject); begin

Tablel.Next; end;


154


Часть II. Технологии доступа к данным


procedure TForml.Button2Click(Sender: TObject);

begin

Tablel.Prior;

end;

при нажатии кнопок Buttonl и Button2 выполняется переход к следующей и предыдущей записям набора данных Tablel соответственно.

Вывод графических изображений

Компонент DBimage (графическое изображение) предназначен для вывода изо­бражений, содержащихся в графических полях БД. Если компонент DBimage связать с полем, не содержащим изображение, например, с числовым, то в об­ласти компонента выводится имя этого поля. В случае, когда компонент DBimage не связан ни с одним полем, он отображает свое собственное имя (зна­чение свойства Name).

Кроме вывода изображения, компонент также позволяет изменить (заменить) его, вставив нужный рисунок из буфера обмена Windows.

Основные свойства графического изображения мы рассматривать не будем, а рассмотрим только дополнительные характеристики компонента DBimage.

Свойство AutoDisplay типа Boolean указывает, каким способом в компоненте DBimage отображаются изменения в связанном с ним поле. По умолчанию свой­ство имеет значение True, и содержимое графического поля отображается. Если свойство AutoDisplay установить в значение False, то при изменении значе­ния поля, например, из-за перехода к другой записи, вместо изображения выво­дится имя поля. В этом случае для вывода графики нужно выполнить двойной щелчок на графическом компоненте или нажать клавишу <Enter>, когда на нем находится фокус ввода. Можно также вывести содержимое поля программно с помощью метода LoadPicture. Например:

DBImagel.AutoDisplay:= False;

procedure TForml.ButtonlClick(Sender: TObject);

begin

DBImagel.LoadPicture;

end;

В данной процедуре при нажатии кнопки Buttonl в графическом компоненте DBImagel выводится содержимое графического поля текущей записи.

Компонент DBimage поддерживает работу с буфером обмена Windows, позволяя копировать изображение в буфер и вставлять изображение из буфера. Для вы­полнения этих действий используются обычные для Windows-программ комби­нации клавиш: копирование в буфер — <Ctrl>+<Insert>, удаление в буфер — <Shift>+<Delete>, вставка из буфера — <Shift>+<insert>.


Глава 6. Визуальные компоненты для работы с данными


155


Указанные действия также могут быть выполнены программно. Метод CopyToClipboard копирует изображение в буфер обмена, метод CutToClipboard вырезает (перемещает) изображение в буфер обмена, а метод PasteFromClipboard вставляет изображение из буфера обмена.

При использовании любого способа вставки из буфера новое изображение ав­томатически заменяет предыдущее содержимое компонента DBimage.

Рассмотрим в качестве примера программу для работы с фотоальбомом.

Пусть информация о фотографиях хранится в таблице Paradox, представляющей собой "электронный фотоальбом" и включающей следующие поля:

□ код (автоинкрементное поле);

□ название (символьное поле);

□ дата (поле даты);

□ изображение (графическое поле);

□ описание (Memo-поле).

Для просмотра и редактирования альбома создано приложение, форма которого показана на рис. 6.10. Содержимое альбома выводится в соответствующих ком­понентах. В верхней части расположены поля редактирования DBEdit, одно из которых содержит название, а другое — дату фотографии. Снимок выводится в графическом компоненте DBimagel, а описание снимка — в многострочном ре­дакторе DBMemol. Для навигации по альбому используется навигатор DBNavigatorl, расположенный в нижней части формы. Флажок checkBoxl управляет масштабированием изображения по размеру компонента DBimagel. По умолчанию этот флажок снят, и изображение не подстраивается под разме­ры графического компонента.

Название, дата и описание фотографии редактируются обычным способом с помощью соответствующих компонентов DBEdit и DBMemo. Для редактирования снимка имеются кнопки, позволяющие вставлять изображение из файла и со­хранять его в файле, а также обмениваться изображениями через буфер.

Нажатие кнопки Открыть вызывает появление диалога OpenPictureDialogl выбора файла для открытия. После выбора нужного файла содержащееся в нем изображение загружается в компонент DBimagel. Фильтр диалога настроен на выбор графических файлов формата BMP, а также форматов ICO, EMF и WMF, которые при загрузке автоматически преобразуются в формат BMP.

Нажатие кнопки Сохранить открывает диалог SavePictureDialogl выбора файла для сохранения. После выбора файла в него записывается изображение из компонента DBimagel. Фильтр диалога настроен на выбор графического файла формата BMP. Настройка фильтров обоих диалогов произведена при соз­дании формы.


156


Часть II. Технологии доступа к данным


Рис. 6.10. Просмотр и редактирование электронного фотоальбома

Кнопки с названиями Копировать, Вырезать и Вставить выполняют соответст­вующий обмен между графическим компонентом DBimagel и буфером. Кнопка Закрыть прекращает работу приложения.

Ниже приведен код модуля uAlbum формы Forml приложения.

unit uAlbum; interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, DBCtrls, ExtCtrls, Db, DBTables, Grids, DBGrids, ExtDlgs,

Mask;

type

TForml = class(TForm)

DataSourcel: TDataSource;

Tablel: TTable;

DBNavigatorl: TDBNavigator;

Buttonl: TButton;

OpenPictureDialogl: TOpenPictureDialog;

SavePictureDialogl: TSavePictureDialog;

Button2: TButton;

Button3: TButton;

Button4: TButton;


Глава 6. Визуальные компоненты для работы с данными


157


Button5: TButton;

Button6: TButton;

DBMemo1: TDBMemo;

DBImagel: TDBImage;

CheckBoxl: TCheckBox;

DBEditl: TDBEdit;

DBEdit2: TDBEdit;

procedure ButtonlClick(Sender: TObject procedure Button2Click(Sender: TObject procedure Button3Click(Sender: TObject procedure Button4Click(Sender: TObject procedure Button5Click(Sender: TObject procedure Button6Click(Sender: TObject procedure FormCreate(Sender: TObject); procedure CheckBoxlClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Forml: TForml;

implementation

{$R *.DFM}

procedure TForml.FormCreate(Sender: TObject);

begin

OpenPictureDialogl.Filter:=

'Все файлы (*.bmp;*.ico;*.emf;*.wmf) *.bmp;*.ico;*.emf;*.wmf' SavePictureDialogl.Filter:= '*.bmp|*.bmp';

end;

procedure TForml.ButtonlClick(Sender: TObject); begin

if OpenPictureDialogl.Execute then DBImagel.Picture.LoadFromFile(OpenPictureDialogl.FileName); end;


158


Часть II. Технологии доступа к данным


procedure TForml.Button2Click(Sender: TObject); begin

if SavePictureDialogl.Execute then DBImagel.Picture.LoadFromFile(SavePictureDialogl.FileName); end;

procedure TForml.Button3Click(Sender: TObject); begin

DBImagel.CopyToClipboard; end;

procedure TForml.Button4Click(Sender: TObject); begin

DBImagel.CutToClipboard; end;

procedure TForml.Button5Click(Sender: TObject); begin

DBImagel.PasteFromClipboard; end;

procedure TForml.Button6Click(Sender: TObject);

begin

Forml.Close; end;

procedure TForml.CheckBoxlClick(Sender: TObject); begin

DBImagel.Stretch:= CheckBoxl.Checked; end;

end.

Отметим, что в отличие от компонента image, у графического компонен­та DBimage нет свойства Canvas, позволяющего рисовать на поверхности изо­бражения.

Построение диаграмм

Для построения диаграмм на основании информации, содержащейся в наборе данных, предназначен компонент-диаграмма DBChart. Он позволяет выводить диаграммы различных типов, в том числе объемные. Этот компонент является достаточно сложным и имеет большое количество разнообразных свойств, мно­гие из которых являются объектами и также имеют свои свойства. На практике


Глава 6. Визуальные компоненты для работы с данными


159


установка значений этих свойств выполняется при разработке приложения с помощью Редактора диаграмм, окно которого Editing DBChartl показано на рис. 6.11. Редактор позволяет оперировать со свойствами-объектами, информа­ция о которых отображается на его страницах, и вызывается двойным щелчком на компоненте DBChart или через поле значения свойства-объекта в Инспекто­ре объектов (в этом случае активной становится страница, соответствующая вы­бранному свойству).

Важнейшим свойством компонента DBChart является свойство Series [ index:Longint] типа TChartSeries, представляющее собой массив диаграмм, выводимых в области компонента. (Часто компонент DBChart содержит только одну диаграмму.)

Для каждой диаграммы можно установить:

□ тип; □ описание;

□ название; □ источник данных

□ оси; и другие параметры.

Рис. 6.11. Редактор диаграмм

Разработчик должен как минимум указать тип диаграммы и источник данных. Тип выбранной диаграммы (диаграмм) и ее название отображаются на странице Chart-Series Редактора диаграмм (рис. 6.11). Для добавления новой диаграммы нужно нажать кнопку Add, в результате чего появляется окно, показанное на рис. 6.12. После выбора типа диаграммы, объемного или плоского варианта ее построения и нажатия кнопки ОК диаграмма добавляется к значению свойства Series и отображается на соответствующей странице Редактора диаграмм.


160


Часть II. Технологии доступа к данным


Для выбранной диаграммы можно выполнить следующие действия:

□ изменить имя по умолчанию (seriesl, Series2 и т. д.) — кнопка Title;

□ изменить тип диаграммы — кнопка Change;

□ скопировать диаграмму — кнопка Clone;

□ удалить диаграмму — кнопка Delete.

Источник данных выбирается на странице Series-DataSource из следующих ва­риантов:

No Data — значения, вводимые программно;

Random Values — случайные числа;

Function — значения, определяемые выбранной функцией;

DataSet — значения набора данных; компонент DBChart отличается от ком­понента chart именно тем, что для него в качестве источника данных мож­но использовать набор данных, т. е. DBChart является более универсальным компонентом.



 


Standard Functions

Line Bar Horiz.Bar Area



 


Point Pie Fast Line Shape

Gantt Arrow Bubble

OK Cancel |7 3D

Рис. 6.12. Выбор типа диаграммы

Если выбран программный способ (вариант No Data) ввода значений, то при выполнении приложения нужно вызывать соответствующие методы. Для управ­ления значениями, по которым строится диаграмма, часто используются методы

Add, Delete или Clear.

Функция Add (Const AValue: Double; Const ALabel: String; AColor: TColor): Longint добавляет к диаграмме значение, указанное параметром


Глава 6. Визуальные компоненты для работы с данными


161


AValue. Параметры ALabel и AColor содержат соответственно надпись значе­ния и цвет, используемый при выводе. В качестве результата функция возвра­щает номер значения в массиве значений диаграммы. Кроме Add, есть несколь­ко других методов, также позволяющих добавлять значения.

Процедура Delete (Valueindex: Longint) удаляет значение с номером, ука­занным параметром Valueindex. Для удаления всех значений удобно использо­вать процедуру Clear.

В качестве примера рассмотрим, как осуществляется вывод графика.

Тип диаграммы (график) задан при разработке приложения. Вид графика при выполнении приложения показан на рис. 6.13. Используемые при его построе­нии значения вводятся построчно в редакторе Memol.

Рис. 6.13. Вывод графика

Ниже приведены обработчики событий для кнопок формы приложения.

procedure TForml.ButtonlClick(Sender: TObject);

var n: integer;

begin

DBChartl.Title.Text.Add('График');

for n:= 0 to Memol.Lines.Count - 1 do

DBChartl.Series[0].Add(StrToFloat(Memol.Lines[n]), IntToStr(n), clRed); end;

procedure TForml.Button2Click(Sender: TObject);

begin

DBChartl.Title.Text.Clear;

DBChartl.Series[0].Clear;

end;


162


Часть II. Технологии доступа к данным


При нажатии кнопки График (Buttonl) значения из редактора Memol заносятся в компонент DBChartl, отображающий график. Удаляется график нажатием кнопки Очистить (Button2).

Задание случайных чисел (вариант Random Values) в качестве источника данных для диаграммы бывает полезным при предварительной настройке диаграммы, например, при выборе ее типа или размера.

Использование функции (вариант Function) в качестве источника данных для диаграммы заключается в том, что диаграмма строится на основании обработки значений, взятых из двух и более других диаграмм (серий). В качестве функций обработки можно использовать Copy, Average, Low, High, Divide, Multiply, Subtract и Add. Например, если указать функцию Subtract (Вычитание) и две диаграммы-источника Seriesl и Series2, то каждое значение нашей диаграм­мы будет вычисляться как разность между соответствующими значениями диа­грамм Seriesl и Series2.

При задании набора данных (вариант Dataset) в качестве источника данных для диаграммы (рис. 6.14) становится видимой панель для ввода информации о на­боре данных.

Рис. 6.14. Задание источника данных для диаграммы

В списке Dataset содержатся имена наборов данных, доступных в модуле той формы, в которой расположен компонент DBChart. В приведенном на рис. 6.14 примере — это набор данных Tablel. В списке Labels выбирается имя поля (в примере Name), данные из которого используются в качестве надписей для обо-


Глава 6. Визуальные компоненты для работы с данными


163


значения секторов диаграммы, а в списке Pie — имя поля (в примере Dial), из которого выбираются данные для построения секторов диаграммы.

После закрытия окна Редактора диаграмма автоматически строится системой Delphi на основании записей, составляющих набор данных (рис. 6.15).


Рис.6.15. Диаграмма, построенная на основании значений набора данных

При выполнении приложения диаграмма выглядит так же, как и при проекти­ровании. При этом ее функционирование является динамическим, т. е. при из­менении данных, содержащихся в наборе, диаграмма изменяется автоматически.



Глава 7


Навигационный доступ к данным с помощью BDE

Напомним, что навигационный способ доступа заключается в обработке каждой отдельной записи набора данных. Достоинством этого способа является просто­та кодирования операций, а основной недостаток состоит в том, что приложе­ние получает все записи набора независимо от того, сколько их требуется обра­ботать на самом деле. Это приводит к большой нагрузке на сеть, особенно при интенсивном обмене данными. Поэтому применение навигационного способа доступа обычно ограничивается локальными БД.

В данной главе мы познакомимся с основными операциями, используемыми в локальных БД. Эти операции также могут быть применены и при организации работы с удаленными БД, если сеть имеет небольшое число пользователей. Операции с таблицами будут рассмотрены по отношению к наборам данных Table и Query, используемым при механизме BDE. Наряду с навигационным, язык структурированных запросов SQL и набор данных Query позволяют реали­зовать для локальных БД и реляционный доступ к данным, который подробно будет изложен в главе 8.

Если нет каких-либо специальных ограничений, то при работе с локальными БД более предпочтительным представляется набор данных Table, т. к. он рабо­тает несколько быстрее, чем Query. Для доступа к удаленным БД, наоборот, лучше использовать набор данных Query, т. к. с помощью SQL-запроса он по­зволяет реализовать реляционный доступ к данным, уменьшающий число пере­даваемых по сети записей.

При навигационном способе доступа операции выполняются с отдельными за­писями. Каждый набор данных имеет указатель текущей записи, т. е. записи, с полями которой могут быть выполнены такие операции, как редактирование или удаление. Компоненты Table и Query позволяют управлять положением этого указателя.

Навигационный способ доступа дает возможность осуществлять следующие опе­рации:

□ сортировку записей;

□ навигацию по набору данных;


Глава 7. Навигационный доступ к данным с помощью BDE


165


П редактирование записей;

□ вставку и удаление записей;

□ фильтрацию записей.

Отметим, что аналогичные операции применимы к набору данных и при реля­ционном способе доступа, реализуемом с помощью SQL-запроса.

Операции с таблицей БД

Кроме действий с отдельными записями, с помощью компонента Table можно выполнять также действия с таблицей БД в целом, например, создавать, уда­лять, переименовывать таблицы или устанавливать режимы доступа к ним.

Создание, удаление и переименование

Обычно таблицы создаются на этапе разработки приложения с помощью соот­ветствующих инструментальных программ типа Database Desktop. Как правило, удаление таблицы также выполняется при разработке приложения, например, с помощью Проводника Windows. Использование инструментов позволяет доста­точно удобно создавать таблицы, удалять их и изменять их структуру. Кроме того, программист может создать или удалить таблицу динамически, т. е. в про­цессе выполнения приложения. Такая потребность может возникнуть, напри­мер, при необходимости получить резервную или архивную копию всей таблицы или ее части.

Для создания таблицы используется метод CreateTable. В результате на диске появляется пустая таблица. Перед вызовом метода нужно подготовить необхо­димые данные, на основе которых создается таблица. Эти данные следует при­своить в качестве значений соответствующим свойствам набора данных. Перед вызовом метода CreateTable набор данных должен быть закрыт и установлены значения следующих свойств:

□ DatabaseName (путь к файлам базы данных (каталог));

□ ТаЫеТуре (тип таблицы);

□ FieldDef s (описание полей);

□ indexDef s (описание индексов);

□ TableName (название таблицы).

Свойство TableName задает имя физического файла таблицы, находящегося в каталоге, указанном для размещения БД (свойство DatabaseName).

Формат таблицы TableName типа TTableName может быть следующим:

□ ttDefault (формат таблицы) — по умолчанию, определяется на основании
расширений имен файлов таблиц:

• db или отсутствует — таблица Paradox;


166


Часть II. Технологии доступа к данным


• dbf — таблица dBase;

• txt — таблица ASCII;

 

□ ttParadox (таблица Paradox);

□ ttDBase (таблица dBase);

□ ttFoxPro (таблица FoxPro);

□ ttASCii (таблица ASCII — текстовый файл, разбитый на столбцы).

Для новой таблицы в свойстве FieldDefs типа TFieldDefs обязательно долж­но быть определено хотя бы одно поле. Перед тем как приступить к описанию полей новой таблицы, значение этого свойства следует очистить, т. к. в нем мо­жет находиться информация о полях предыдущей таблицы, с которой был свя­зан набор данных. Для очистки значения свойства FieldDef s можно применить метод clear, а для занесения информации о полях новой таблицы — метод Add.

Процедура Add (const Name: String; DataType: TFieldType; Size: Word;
Required: Boolean) добавляет к массиву полей описание нового поля. Пара­
метр Name указывает название, а параметр DataType — тип поля, который мож­
но выбрать в следующем списке: ftUnknown, ftstring, ftSmallint,
ftlnteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime,
ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic,
ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor,

ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet. В перечисленных значениях префикс ft является сокращением от Field Type — тип поля, а последующая часть определяет собственно тип.

Параметр size определяет размер поля; если для полей некоторых типов, на­пример, поля даты (ftDate), размер не задается, то параметр size принимает значение ноль. Логический параметр Required определяет, должно ли поле обязательно содержать значение (True) или может быть пустым (False).

(_____ ЗамечаниеJ

Если в наборе данных определены статические поля, то при вызове метода CreateTable, скорее всего, возникнет исключение. Это происходит из-за того, что в новой таблице задан новый состав полей и отсутствуют физические поля, с кото­рыми были связаны созданные ранее статические поля.

В таблице можно определить индексы. Описание индексов заносится в свойство indexDef s типа TindexDef s (мы рассматривали его при описании набора дан­ных Table) с помощью метода Add. Отметим, что после создания таблицы в ней можно удалить или создать индекс методами Addlndex и Deletelndex.

(_____ ЗамечаниеJ

После задания новых индексов следует установить нужные значения для свойств indexName и indexFieldName, т. к. они могут указывать на индекс предыдущей таблицы, с которой был связан набор данных.


Глава 7. Навигационный доступ к данным с помощью BDE


167


Для компонента Query действия, связанные с созданием таблицы, выполняются через запрос SQL.

Рассмотрим следующий пример:

procedure TForml.btnNewTableClick(Sender: TObject);

begin

// Закрытие набора данных

Tablel.Active:= False;

// Параметры таблицы БД

Tablel.DatabaseName:= 'BDPlace';

Tablel.TableName:= 'NewTable';

Tablel.TableType:= ttParadox;

// Описание полей таблицы

Tablel.FieldDefs.Clear;

Tablel.FieldDefs.Add('Code', ftAutoinc, 0, True);

Tablel.FieldDefs.Add('Name', ftString, 20, True);

Tablel.FieldDefs.Add('Date', ftDate, 0, False);

// Описание индексов таблицы

Tablel.IndexDefs.Clear;

Tablel.IndexDefs.Add('', 'Code', [ixPrimary, ixUnique]);

Tablel.IndexDefs.Add('indName', 'Name', [ixCaselnsensitive]);

// Создание таблицы

Tablel.CreateTable;

// Установка текущего индекса

Tablel.IndexName:= 'indName';

// Открытие набора данных, связанного с новой (пустой) таблицей

Tablel.Active:= True;

end;

Здесь в каталоге, указываемом псевдонимом BDPlace, создается новая таблица Paradox с именем NewTable.db. Для таблицы заданы три поля: код (номер), имя и дата. Поля кода и имени требуют обязательного заполнения при вводе или модификации записей созданной таблицы. По автоинкрементному полю номера построен главный ключ (без имени), а по полю имени — вторичный ключ, ко­торый после создания таблицы устанавливается как текущий.

Для удаления таблицы используется метод DeleteTable, в результате выполне­ния которого происходит физическое удаление всех файлов указанной таблицы. Путь и имя удаляемой таблицы определяют свойства DatabaseName и TableName набора данных. Перед удалением таблицы набор данных должен быть закрыт.

Для переименования таблиц dBase и Paradox можно использовать метод RenameTable (const NewTableName: String), при выполнении которого пе­реименовываются все файлы, относящиеся к таблице. Параметр NewTableName


168


Часть II. Технологии доступа к данным


задает новое название таблицы. Напомним, что имя таблицы совпадает с име­нами файлов, а расширения имен файлов указывают на содержащуюся в них информацию, например, данные или индексы.



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


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