Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

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

CuBook05

Обычно таблицы создаются на этапе разработки приложения с помощью соответствующих инструментальных программ типа Database Desktop. Как правило, удаление таблицы также выполняется при разработке приложения, например, с помощью Проводника Windows. Использование инструментов позволяет достаточно удобно создавать таблицы, удалять их и изменять их структуру. Кроме того, программист может создать или удалить таблицу динамически, т.е. в процессе выполнения приложения. Такая потребность может возникнуть, например, при необходимости получить резервную или архивную копию всей таблицы или ее части.
 
Для создания таблицы используется метод CreateTable. В результате на диске появляется пустая таблица. Перед вызовом метода нужно подготовить необходимые данные, на основе которых создается таблица. Эти данные следует присвоить в качестве значений соответствующим свойствам набора данных. Перед вызовом метода CreateTable набор данных должен быть закрыт и установлены значения следующих свойств:
  • DatabaseName (путь к файлам базы данных (каталог));
  • TableType (тип таблицы);
  • FieldDefs (описание полей);
  • IndexDefs (описание индексов);
  • TableName (название таблицы).
Свойство TableName задает имя физического файла таблицы, находящего в каталоге, указанном для размещения БД (свойство DatabaseName).
 
Для свойства TableType, определяющего тип таблицы, могут задаваться также следующие значения:
  • - ttDefauit (формат таблицы по умолчанию, определяется на основании расширений имен файлов таблиц);
  • ttParadox (таблица Paradox);
  • ttDBase (таблица dBase);
  • ttFoxPro (таблица FoxPro);
  • ttASCII (таблица ASCII - текстовый файл, разбитый на столбцы).
Для новой таблицы в свойстве FieldDefs типа TFieldDefs обязательно должно быть определено хотя бы одно поле. Перед тем как приступить к описанию полей новой таблицы, значение этого свойства следует очистить, т.к. в нем может находиться информация о полях предыдущей таблицы, с которой был связан набор данных. Для очистки значения свойства FieldDefs можно применить метод clear, а для занесения информации о полях новой таблицы метод Add.
 
Метод HIDESBASE void __fastcall Add(const AnsiString Name, TFieldType DataType, int Size = 0, bool Required = false); добавляет к массиву полей описание нового поля. Параметр Name указывает название, а параметр DataType тип поля, который можно выбрать в следующем списке: ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftcurrency, ftBCD, ftDate, ftTime и т.п. В перечисленных значениях префикс ft является сокращением от Field туре тип поля, а последующая часть определяет собственно тип.
 
Параметр size определяет размер поля; если для полей некоторых типов, например поля даты (ftDate), размер не задается, то параметр size принимает значение ноль. Логический параметр Required определяет, должно ли поле обязательно содержать значение (true) или может быть пустым (false).
Если в наборе данных определены статические поля, то при вызове метода CreateTable, скорее всего, возникнет исключение. Это происходит из-за того, что в новой таблице задан новый состав полей и отсутствуют физические поля, с которыми были связаны созданные ранее статические поля.
В таблице можно определить индексы. Описание индексов заносится в свойство IndexDefs типа TIndexDefs (мы рассматривали его при описании набора данных Table) с помощью метода Add. Отметим, что после создания таблицы в ней можно удалить или создать индекс методами AddIndex и DeleteIndex.
После задания новых индексов следует установить нужные значения для СВОЙСТВ IndexName и IndexFieldName, т.к. они могут указывать на индекс предыдущей таблицы, с которой был связан набор данных.
Для компонента Query действия, связанные с созданием таблицы, выполняются через запрос SQL.
Для удаления таблицы используется метод DeieteTabie, в результате выполнения которого происходит физическое удаление всех файлов указанной Таблицы. Путь и имя удаляемой таблицы определяют свойства DatabaseName и TableName набора данных. Перед удалением таблицы набор данных должен быть закрыт.
 
Для переименования таблиц dBase и Paradox можно использовать метод void __fastcall RenameTable(const AnsiString NewTableName); при выполнении которого переименовываются все файлы, относящиеся к таблице. Параметр NewTableName задает новое название таблицы. Напомним, что имя таблицы совпадает с именами файлов, а расширения имен файлов указывают на содержащуюся в них информацию, например, данные или индексы.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий