C++Builder Personal で DAO

トランザクションを確定する


void __fastcall TForm1::Button20Click(TObject *Sender)
{
Variant de = Variant::CreateObject("DAO.DBEngine.36");
//トランザクションを開始
de.Exec(Procedure("BeginTrans"));

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

//Edit4 に テーブル名を入力
const int dbOpenTable = 1;
Variant rs = db.Exec(Function("OpenRecordset")<<Edit4->Text<<dbOpenTable);

//Edit7 に インデックス名を入力
rs.Exec(PropertySet("Index")<<Edit7->Text);

//Edit1 に Key値を入力
rs.Exec(Procedure("Seek")<<"="<<Edit1->Text);

if (!rs.Exec(PropertyGet("NoMatch")))
{
rs.Exec(Procedure("Edit"));
rs.Exec(PropertyGet("Fields")<<1).Exec(PropertySet("Value")<<Edit2->Text);
rs.Exec(Procedure("Update"));
}

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

//トランザクションを確定する
de.Exec(Procedure("CommitTrans"));
}