ダイナセットを使ってJetデータベースのテーブルにアクセスするサンプルです。
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <dbdaoint.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
int j;
Variant vDAO;
Variant vDB;
Variant vRS;
AnsiString strSql;
AnsiString str = ExtractFilePath(Application->ExeName) + "TEST.mdb";
vDAO = Variant::CreateObject("DAO.DBEngine.35");
vDB = vDAO.Exec(Function("OpenDatabase") << str);
strSql = "SELECT * FROM 新規テーブル";
vRS = vDB.Exec(Function("Openrecordset") << strSql << dbOpenDynaset);
if (vRS.Exec(Function("EOF"))){
}else{
vRS.Exec(Function("MoveLast"));
ShowMessage("処理前レコード数は" + vRS.OlePropertyGet("RecordCount"));
vRS.Exec(Function("MoveFirst"));
}
//削除
vDAO.Exec(Function("BeginTrans"));
while(!vRS.Exec(Function("EOF"))){
vRS.Exec(Function("Delete"));
vRS.Exec(Function("MoveNext"));
}
vDAO.Exec(Function("CommitTrans"));
ShowMessage("削除後のレコード数は" + vRS.OlePropertyGet("RecordCount"));
//追加
vDAO.Exec(Function("BeginTrans"));
for (i=0;i<10;i++){
vRS.Exec(Function("AddNew"));
vRS.Exec(PropertySet("FieldText") << IntToStr(i) + "番目追加");
vRS.Exec(PropertySet("FieldInteger") << i);;
vRS.Exec(Function("Update"));
}
vDAO.Exec(Function("CommitTrans"));
ShowMessage("追加後のレコード数は" + vRS.OlePropertyGet("RecordCount"));
//修正
i = 0;
vRS.Exec(Function("MoveFirst"));
while(!vRS.Exec(Function("EOF"))){
i++;
vRS.Exec(Function("Edit"));
vRS.Exec(PropertySet("FieldText") << IntToStr(i) + "番目更新");
j = vRS.Exec(PropertyGet("FieldInteger"));
vRS.Exec(PropertySet("FieldInteger") << j + 1000);
vRS.Exec(Function("Update"));
vRS.Exec(Function("MoveNext"));
}
vRS.Exec(Procedure("Close"));
vDB.Exec(Procedure("Close"));
}
//---------------------------------------------------------------------------
DownLoad bcbtips053.lzh 8KB(BCB5)