C++Builder Personal で ADO

テーブルを作成する


void __fastcall TForm1::Button6Click(TObject *Sender)
{
//ADODB.DataTypeEnum
const int adArray = 8192;
const int adBigInt = 20;
const int adBinary = 128;
const int adBoolean = 11;
const int adBSTR = 8;
const int adChapter = 136;
const int adChar = 129;
const int adCurrency = 6;
const int adDate = 7;
const int adDBDate = 133;
const int adDBTime = 134;
const int adDBTimeStamp = 135;
const int adDecimal = 14;
const int adDouble = 5;
const int adEmpty = 0;
const int adError = 10;
const int adFileTime = 64;
const int adGUID = 72;
const int adIDispatch = 9;
const int adInteger = 3;
const int adIUnknown = 13;
const int adLongVarBinary = 205;
const int adLongVarChar = 201;
const int adLongVarWChar = 203;
const int adNumeric = 131;
const int adPropVariant = 138;
const int adSingle = 4;
const int adSmallInt = 2;
const int adTinyInt = 16;
const int adUnsignedBigInt = 21;
const int adUnsignedInt = 19;
const int adUnsignedSmallInt = 18;
const int adUnsignedTinyInt = 17;
const int adUserDefined = 132;
const int adVarBinary = 204;
const int adVarChar = 200;
const int adVariant = 12;
const int adVarNumeric = 139;
const int adVarWChar = 202;
const int adWChar = 130;

Variant cat = Variant::CreateObject("ADOX.Catalog");

//Edit3 に mdbファイル名を入力
cat.Exec(PropertySet("ActiveConnection")<<"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Edit3->Text + ";");

//Edit4 に テーブル名を入力
Variant tbl = Variant::CreateObject("ADOX.Table");
tbl.Exec(PropertySet("Name")<<Edit4->Text);

//Edit5, Edit6 に フィールド名を入力
Variant columns = tbl.Exec(Function("Columns"));
columns.Exec(Procedure("Append")<<Edit5->Text<<adInteger);
columns.Exec(Procedure("Append")<<Edit6->Text<<adVarWChar<<50);


Variant tables = cat.Exec(Function("Tables"));
tables.Exec(Procedure("Append")<<tbl);
}