home > OLE オートメーション > DAO >

ForNext

Only Do What Only You Can Do

07. テーブル一覧を取得する

VBScript

JScript

Perl

PHP

Python

Ruby

PowerShell

Scala

F#

C

C++

C++Builder

更新日 : 2006.07.15
void __fastcall TForm1::Button7Click(TObject *Sender)
{
    //表示用コントロールをクリア
    ListBox1->Items->Clear();
    ListBox2->Items->Clear();
    ListBox3->Items->Clear();

    //データベースを開く (排他モード = false, 読み込み専用 = true)
    Variant de = Variant::CreateObject("DAO.DBEngine.36");
    Variant db = de.Exec(Function("OpenDatabase") << "e:\\test.mdb" << false << true);

    //テーブル定義コレクションを取得
    Variant tds = db.Exec(Function("TableDefs"));

    const int dbSystemObject = -2147483646;
    const int dbHiddenObject = 1;

    for (int i=0;i<tds.Exec(PropertyGet("Count"));i++)
    {
        Variant td = db.Exec(PropertyGet("TableDefs") << i);

        if (td.Exec(PropertyGet("Attributes")) & dbSystemObject)
            //システムオブジェクトは ListBox1 に表示
            ListBox1->Items->Add(td.Exec(PropertyGet("Name")));

        else if (td.Exec(PropertyGet("Attributes")) & dbHiddenObject)
            //隠しオブジェクトは ListBox2 に表示
            ListBox2->Items->Add(td.Exec(PropertyGet("Name")));

        else
            //通常のテーブルを ListBox3 に表示
            ListBox3->Items->Add(td.Exec(PropertyGet("Name")));
    }

    //データベースを閉じる
    db.Exec(Procedure("Close"));
}

VC++

C#

Java

Objective-C

D

VB

更新日 : 2006.07.15
Private Sub Command7_Click()
    '表示用コントロールをクリア
    List1.Clear
    List2.Clear
    List3.Clear

    'データベースを開く (排他モード = False, 読み込み専用 = True)
    Dim db As Database
    Set db = DBEngine.OpenDatabase("e:\test.mdb", False, True)

    Dim td As TableDef
    For Each td In db.TableDefs
        'テーブル定義を取得
        If td.Attributes And dbSystemObject Then
            'システムオブジェクトは ListBox1 に表示
            List1.AddItem td.Name

        ElseIf td.Attributes And dbHiddenObject Then
            '隠しオブジェクトは ListBox2 に表示
            List2.AddItem td.Name

        Else
            '通常のテーブルを ListBox3 に表示
            List3.AddItem td.Name
        End If
    Next

    'データベースを閉じる
    db.Close
End Sub

VB.NET

Delphi

更新日 : 2006.07.15
procedure TForm1.Button7Click(Sender: TObject);
var
    de:Variant;//DBEngine
    db:Variant;//Database
    td:Variant;//TableDef
    i :Integer;
const
    dbSystemObject:Integer =   -2147483646;
    dbHiddenObject:Integer =   1;
begin
    //表示用コントロールをクリア
    ListBox1.Items.Clear;
    ListBox2.Items.Clear;
    ListBox3.Items.Clear;

    //データベースを開く (排他モード = false, 読み込み専用 = true)
    de := CreateOleObject('DAO.DBEngine.36');
    db := de.OpenDatabase('e:\test.mdb', false, true);

    for i := 0 to db.TableDefs.Count - 1 do
    begin
        td := db.TableDefs[i];
        if td.Attributes and dbSystemObject then
            //システムオブジェクトは ListBox1 に表示
            ListBox1.Items.Add(td.Name)

        else if td.Attributes and dbHiddenObject then
            //隠しオブジェクトは ListBox2 に表示
            ListBox2.Items.Add(td.Name)

        else
            //通常のテーブルを ListBox3 に表示
            ListBox3.Items.Add(td.Name);
    end;

    //データベースを閉じる
    db.Close;
end;

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system