クエリー名をリストボックスに出力するサンプルです。
//---------------------------------------------------------------------------
#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::FormCreate(TObject *Sender)
{
AnsiString str = ExtractFilePath(Application->ExeName) + "TEST.mdb";
bool bRet = CtlQueryNameAdd(ListBox1,str);
}
//---------------------------------------------------------------------------
bool TForm1::CtlQueryNameAdd(TObject *Sender, AnsiString strPath)
{
AnsiString strClassName = Sender->ClassName();
TListBox* lst;
if (strClassName == "TListBox"){
lst = (TListBox*)Sender;
}else{
return false;
}
int i;
int iMax;
int iAttributes;
Variant vDAO;
Variant vDB;
AnsiString str;
vDAO = Variant::CreateObject("DAO.DBEngine.35");
vDB = vDAO.Exec(Function("OpenDatabase") << strPath);
iMax = vDB.Exec(Function("QueryDefs")).Exec(Function("Count"));
for (i=0;i<iMax;i++){
str = vDB.Exec(PropertyGet("QueryDefs")<<i).Exec(PropertyGet("Name"));
lst->Items->Add(str);
}
vDB.Exec(Procedure("Close"));
return true;
}
DownLoad bcbtips056.lzh 10KB(BCB5)