C++Builder Personal で ADO
選択クエリー (Recordset.Open)
void __fastcall TForm1::Button14Click(TObject *Sender)
{
const int adOpenDynamic = 2;
const int adOpenForwardOnly = 0;
const int adOpenKeyset = 1;
const int adOpenStatic = 3;
const int adOpenUnspecified = -1;const int adLockBatchOptimistic = 4;
const int adLockOptimistic = 3;
const int adLockPessimistic = 2;
const int adLockReadOnly = 1;
const int adLockUnspecified = -1;//表示用コントロールをクリア
ListBox1->Items->Clear();
ListBox2->Items->Clear();Variant cn = Variant::CreateObject("ADODB.Connection");
//Edit3 に mdbファイル名を入力
cn.Exec(PropertySet("ConnectionString")<<"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Edit3->Text + ";");
cn.Exec(Procedure("Open"));//Edit4 に テーブル名を入力
//Edit5, Edit6 に フィールド名を入力
//Edit1 に Key値を入力
AnsiString sql = "SELECT * FROM " + Edit4->Text + " "
+ "WHERE " + Edit5->Text + " = " + Edit1->Text;Variant rs = Variant::CreateObject("ADODB.Recordset");
rs.Exec(PropertySet("Source")<<sql);
rs.Exec(PropertySet("Activeconnection")<<cn);
rs.Exec(PropertySet("CursorType")<<adOpenForwardOnly);
rs.Exec(PropertySet("LockType")<<adLockReadOnly);rs.Exec(Procedure("Open"));
while (!rs.Exec(PropertyGet("EOF")))
{
//表示用コントロールに項目内容をセット
Variant fd = rs.Exec(PropertyGet("Fields")<<0);
ListBox1->Items->Add(fd.Exec(PropertyGet("Value")));fd = rs.Exec(PropertyGet("Fields")<<1);
ListBox2->Items->Add(fd.Exec(PropertyGet("Value")));rs.Exec(Function("MoveNext"));
}
rs.Exec(Procedure("Close"));cn.Exec(Procedure("Close"));
}