1. Обзор
Будучи инструментом быстрой разработки под Windows, Delphi может не только разрабатывать общие приложения Windows, но также обладает мощными функциями разработки приложений баз данных. Сама Delphi обеспечивает поддержку нескольких драйверов баз данных, таких как BDE, ODBC, ADO и InterBase, которые могут удовлетворить потребности различных приложений при разработке программ баз данных.
Однако при публикации программы базы данных, разработанной с помощью Delphi, помимо установки приложения вам также необходимо одновременно опубликовать драйвер базы данных. Это кажется немного сложным для некоторых автономных приложений, которые используют только одно или несколько простых табличных хранилищ данных. Более того, некоторым приложениям самим необходимо хранить большой объем данных, но если сами результаты должны быть краткими и лаконичными, традиционный метод разработки баз данных с использованием Delphi не может удовлетворить потребности.
Итак, есть ли способ решить вышеуказанное противоречие и разработать «тонкое» автономное приложение для базы данных, которое можно было бы отделить от огромного драйвера базы данных? Delphi5 предоставляет элемент управления TClientDataSet в панели управления Midas, который может хорошо решить эту проблему.
2. Ключевые моменты использования TClientDataSet
Элемент управления TClientDataSet наследует от TDataSet, и его расширение формата файла хранения данных — .cds. Это элемент управления, основанный на хранении и работе данных типа файла. Этот элемент управления инкапсулирует интерфейсы и функции для работы и обработки данных и не зависит от вышеупомянутых драйверов базы данных. Он в основном может удовлетворить потребности автономных «тонких» приложений баз данных.
1. Введение в основные свойства и методы TClientDataSet.
1). FieldDefs: свойства списка определений полей.
Разработчики могут редактировать поля, нажав кнопку редактирования свойств в редакторе свойств или щелкнув правой кнопкой мыши элемент управления и выбрав во всплывающем меню пункт «Редактор полей». После установки этого свойства это фактически эквивалентно определению структуры таблицы; если вы хотите загрузить структуру и данные существующей таблицы данных, вы можете щелкнуть правой кнопкой мыши и выбрать меню «Назначить локальные данные» во всплывающем окне. В диалоговом окне выберите имя элемента управления набором данных, который подключен к базе данных в текущей форме (применяемый элемент управления набором данных должен быть помещен в текущую форму и активирован).
Примечания по использованию:
Для настраиваемой таблицы имен полей после редактирования свойства элемент управления по-прежнему нельзя открыть. Необходимо щелкнуть правой кнопкой мыши по элементу управления и выбрать во всплывающем меню пункт «Создать набор данных», чтобы позволить элементу управления создать набор данных на основе отредактированного выше списка полей, прежде чем его можно будет активировать, открыть и использовать. В противном случае возникнет ошибка, аналогичная «ClientDataSet1: отсутствуют данные PRavider или пакет данных». (в том числе во время выполнения среда выполнения может вызвать метод CreateDataSet элемента управления для динамического определения полей и таблиц).
2). ИмяФайлаСвойство
Описание: Имя файла хранения данных.
Поскольку этот элемент управления является элементом управления операциями с данными на основе файла, необходимо указать имя обрабатываемого файла данных (имя расширения по умолчанию .cds), чтобы открыть и активировать элемент управления для редактирования данных.
Пример 1. Используйте это свойство, чтобы открыть указанный файл .cds.
вар
Путь: строка;
начинать
Путь := ExtractFilePath(application.ExeName); //Получаем путь к исполняемому файлу
CDataSet1.FileName := Путь + 'test.cds';
CDataSet1.Открыть;
конец;
3). Метод CreateDataSet
Описание. Этот метод использует таблицу имен полей в FieldDefs в качестве структуры для создания набора данных, который часто используется для динамического определения таблиц.
Пример 2. Динамическое создание набора данных с двумя полями: имя и возраст.
//Создаем таблицу имен полей
CDataSet.FieldDefs.Clear;
с помощью CDataSet.FieldDefs.AddFieldDef сделайте
начинать
Имя := 'Имя';
Размер:= 10;
Тип данных: = ftString;
конец;
с помощью CDataSet.FieldDefs.AddFieldDef сделайте
начинать
Имя := 'Возраст';
Тип данных: = ftInteger;
конец;
//Динамически создаем набор данных
CDataSet.CreateDataSet;
//Активируем и открываем набор данных
CDataSet.Open;
4). Открытый метод
Описание: Открывает и активирует элемент управления набором данных для редактирования данных.
a. Если указан атрибут FileName, элемент управления можно открыть и активировать напрямую с помощью метода Open, см. пример 1.
б. Если атрибут FileName не указан, вы можете использовать метод из примера 2 для динамического создания и открытия набора данных, а затем манипулирования данными.
5). Загрузить из файла и сохранить в файл.
Описание: Загрузка структур таблиц и данных из файлов и сохранение данных в файлах. Этот метод аналогичен функциям «Открыть новый файл» и «Сохранить как» в Word.
Пример 3. Сохранение данных набора данных в указанном файле.
CDataSet.SaveToFile('c:/windows/desktop/test.cds');
6).First (в начало), Prior (вперед), Next (назад), Last (до конца), Edit (редактировать), CanCel (отменить редактирование), Post (сохранить), Insert (вставить запись), Append (Добавить запись), Удалить (удалить), Обновить (обновить данные) и другие распространенные методы работы с наборами данных.
Примечание. Если указан атрибут FileName, его метод Post может хранить данные в указанном файле, аналогично методу SaveToFile. Если имя файла хранения не указано, метод Post сохраняет данные только в оперативной памяти; Другие методы аналогичны использованию общего управления набором данных, но опущены.
7).Фильтр, Фильтрация: свойства фильтрации.
Описание: используется для фильтрации записей с указанными условиями. Использование такое же, как и у общих элементов управления набором данных, которые опущены.
Пример 4: Фильтрация записей с мужским полом в активированном и открытом наборе данных
CDataSet.Close;
CDataSet.Filter := 'Gender=''' + 'Мужской' + '''';
CDataSet.Filtered := Истина;
CDataSet.Open;
2. Примечания по публикации приложения с помощью элемента управления TClientDataSet:
Как упоминалось ранее, программы, использующие элемент управления TClientDataSet, при выпуске не требуют какого-либо драйвера базы данных, что значительно экономит размер установочного файла. Однако, публикуя программу, не забудьте опубликовать Midas.dll (257 КБ) в системном каталоге Windows вместе с приложением (необходимым для работы), иначе программа все равно не будет работать нормально.
3. Заключение
Используя элемент управления TClientDataSet в Delphi, приложение можно полностью отделить от драйвера базы данных и реализовать простые и удобные в использовании характеристики обычного элемента управления набором данных, предоставляя технический метод и средства для написания «тонких» данных. приложения баз данных.
Вышеуказанная программа была протестирована под Pwindows98 и Delphi5.