TFDTable.CreateTableの使用方法
概要
XE7以降のFireDACにおいて、TFDTableコンポーネントの機能としてCreateTableメソッドが追加されました。しかしながらdocwikiの説明にはCreateTableメソッドに関する情報が記載されていないため、コード例を交えて簡単な使い方をご紹介します。
解説
CreateTableメソッドは、FireDACからテーブルの新規作成、あるいはテーブルの再作成を行うための関数です。このメソッドの第一パラメータとしてTrueを指定した場合、既存のテーブルに対してDrop Table文を発行し、一度テーブルを削除した後、Create Table文を発行してテーブルを再作成します。
それに対して第一パラメータとしてFalseを指定した場合、Create Table文を発生し、テーブルを新規作成します(なお、第一パラメータのデフォルトは、Trueです)。
以下、CreateTableメソッドの簡単な使い方を示したコード例です(下記のテーブルをTFDTable.CreateTableメソッドを利用して新規作成します)。
CREATE TABLE TABLE1
(
ID INTEGER NOT NULL,
FIELD1 int,
FIELD2 VARCHAR(10),
CONSTRAINT "PK_TABLE1" PRIMARY KEY ("ID")
);
Delphiの場合:
FDTable1.TableName:='Table1';
FDTable1.DeleteIndexes;
FDTable1.FieldDefs.Add('ID', ftInteger, 0, False);
FDTable1.FieldDefs.Add('Field1', ftInteger, 0, False);
FDTable1.FieldDefs.Add('Field2', ftString, 10, False);
FDTable1.AddIndex('idx','ID','',[soPrimary]);
FDTable1.CreateTable(False);
C++Builderの場合:
FDTable1->TableName="Table1";
FDTable1->DeleteIndexes();
FDTable1->FieldDefs->Add("ID", ftInteger, 0, False);
FDTable1->FieldDefs->Add("Field1", ftInteger, 0, False);
FDTable1->FieldDefs->Add("Field2", ftString, 10, False);
TFDSortOptions options;
options << soPrimary;
FDTable1->AddIndex("idx","ID","",options);
FDTable1->CreateTable(False);