C++Builder Personal で DAO

テーブルを作成する


void __fastcall TForm1::Button6Click(TObject *Sender)
{
//DAO.DataTypeEnum
const int dbBigInt = 16;
const int dbBinary = 9;
const int dbBoolean = 1;
const int dbByte = 2;
const int dbChar = 18;
const int dbCurrency = 5;
const int dbDate = 8;
const int dbDecimal = 20;
const int dbDouble = 7;
const int dbFloat = 21;
const int dbGUID = 15;
const int dbInteger = 3;
const int dbLong = 4;
const int dbLongBinary= 11;
const int dbMemo = 12;
const int dbNumeric = 19;
const int dbSingle = 6;
const int dbText = 10;
const int dbTime = 22;
const int dbTimeStamp = 23;
const int dbVarBinary = 17;

Variant de = Variant::CreateObject("DAO.DBEngine.36");

//Edit3 に mdbファイル名を入力
Variant db = de.Exec(Function("OpenDatabase")<<Edit3->Text<<false<<false);

//Edit4 に テーブル名を入力
Variant td = db.Exec(Function("CreateTableDef")<<Edit4->Text);

//Edit5, Edit6 に フィールド名を入力
Variant fields = td.Exec(Function("Fields"));
Variant field = td.Exec(Function("CreateField")<<Edit5->Text<<dbInteger);
fields.Exec(Procedure("Append")<<field);

field = td.Exec(Function("CreateField")<<Edit6->Text<<dbText);
fields.Exec(Procedure("Append")<<field);

Variant tableDefs = db.Exec(Function("TableDefs"));
tableDefs.Exec(Procedure("Append")<<td);

db.Exec(Procedure("Close"));
}