Archive for the ‘DAO’ Category

  1. Hello, DAO(VB6) World!

    Posted on 3月 3rd, 2013 by cx20

    DAO

    DAO(Data Access Object)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
    主に Jet データベース(Access MDB)との接続に用いられるが、ODBC 経由で他の DBMS への接続も可能である。
    DAO 12 より 64bit 版が提供されるようになったが VB6 では 32bit 版のみ利用可能となっている。

    クライアントアプリケーション データベースエンジン 推奨されるデータベース形式
    Access 2.0 Jet 2.0 *.mdb (Jet 2.0)
    Access 95 Jet 3.0 *.mdb (Jet 3.x)
    Access 97 Jet 3.5 *.mdb (Jet 3.x)
    Access 2000 Jet 4.0 *.mdb (Jet 4.x)
    Access 2002 Jet 4.0 *.mdb (Jet 4.x)
    Access 2003 Jet 4.0 *.mdb (Jet 4.x)
    Access 2007 ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Access 2010 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    DAO 3.0 Jet 3.0 *.mdb (Jet 3.x)
    DAO 3.5 Jet 3.5 *.mdb (Jet 3.x)
    DA0 3.6 Jet 4.0 *.mdb (Jet 4.x)
    DA0 12 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Microsoft.Jet.OLEDB.3.51 Jet 3.5 *.mdb (Jet 3.x)
    Microsoft.Jet.OLEDB.4.0 Jet 4.0 *.mdb (Jet 4.x)
    Microsoft.ACE.OLEDB.12.0 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)

    ソースコード(VB6 + DAO + Jet データベース)

    Option Explicit
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("Hello.mdb")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VB6 + DAO + ACE データベース)

    Option Explicit
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.120")
        Set db = dbe.OpenDatabase("Hello.accdb")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VB6 + DAO + ODBC + SQL Server)

    Option Explicit
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("", False, False, _
            "ODBC;Driver={SQL Server};" & _
            "SERVER=(local);DATABASE=master;" & _
            "UID=sa;PWD=P@ssW0rd;")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VB6 + DAO + ODBC + Oracle)

    Option Explicit
     
    Const dbOpenSnapshot = 4
    Const dbSQLPassThrough = 64
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("", False, False, _
            "ODBC;Driver={Oracle in OraDb11g_home1};" & _
            "DBQ=ORCL;" & _
            "UID=scott;PWD=tiger;")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
        ' パススルークエリの例(データベース側に依存する SQL を実行する場合)
        'Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message FROM DUAL", dbOpenSnapshot, dbSQLPassThrough)
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    コンパイル方法

    C:¥> vb6 /make hello.vbp

    実行結果

    Message
    -----------------
    Hello, DAO World!
  2. Hello, DAO(JScript) World!

    Posted on 9月 15th, 2012 by cx20

    DAO

    DAO(Data Access Object)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
    主に Jet データベース(Access MDB)との接続に用いられるが、ODBC 経由で他の DBMS への接続も可能である。
    長い間 DAO は 32bit 版のみしか提供されていなかったが、DAO 12 より 64bit 版が提供されるようになった。

    クライアントアプリケーション データベースエンジン 推奨されるデータベース形式
    Access 2.0 Jet 2.0 *.mdb (Jet 2.0)
    Access 95 Jet 3.0 *.mdb (Jet 3.x)
    Access 97 Jet 3.5 *.mdb (Jet 3.x)
    Access 2000 Jet 4.0 *.mdb (Jet 4.x)
    Access 2002 Jet 4.0 *.mdb (Jet 4.x)
    Access 2003 Jet 4.0 *.mdb (Jet 4.x)
    Access 2007 ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Access 2010 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Access 2010 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)
    DAO 3.0 Jet 3.0 *.mdb (Jet 3.x)
    DAO 3.5 Jet 3.5 *.mdb (Jet 3.x)
    DA0 3.6 Jet 4.0 *.mdb (Jet 4.x)
    DA0 12 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    DA0 12 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)
    Microsoft.Jet.OLEDB.3.51 Jet 3.5 *.mdb (Jet 3.x)
    Microsoft.Jet.OLEDB.4.0 Jet 4.0 *.mdb (Jet 4.x)
    Microsoft.ACE.OLEDB.12.0 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Microsoft.ACE.OLEDB.12.0 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)

    ソースコード(JScript + DAO + Jet データベース)

    main();
     
    function main() {
        var dbe = new ActiveXObject("DAO.DBEngine.36");
        var db = dbe.OpenDatabase("Hello.mdb");
        var rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message");
     
        while ( !rs.EOF )
        {
            WScript.Echo( rs(0).Name );
            WScript.Echo( "-------------------" );
            WScript.Echo( rs(0).Value );
            rs.MoveNext();
        }
     
        rs.Close();
        db.Close();
    }

    ソースコード(JScript + DAO + ACE データベース)

    main();
     
    function main() {
        var dbe = new ActiveXObject("DAO.DBEngine.120");
        var db = dbe.OpenDatabase("Hello.accdb");
        var rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message");
     
        while ( !rs.EOF )
        {
            WScript.Echo( rs(0).Name );
            WScript.Echo( "-------------------" );
            WScript.Echo( rs(0).Value );
            rs.MoveNext();
        }
     
        rs.Close();
        db.Close();
    }

    ソースコード(JScript + DAO + ODBC + SQL Server)

    main();
     
    function main() {
        var dbe = new ActiveXObject("DAO.DBEngine.36");
        var db = dbe.OpenDatabase( "", false, false, 
              "ODBC;Driver={SQL Server};"
            + "SERVER=(local);DATABASE=master;" 
            + "UID=sa;PWD=P@ssW0rd" );
        var rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message");
     
        while ( !rs.EOF )
        {
            WScript.Echo( rs(0).Name );
            WScript.Echo( "-------------------" );
            WScript.Echo( rs(0).Value );
            rs.MoveNext();
        }
     
        rs.Close();
        db.Close();
    }

    ソースコード(JScript + DAO + ODBC + Oracle)

    var dbOpenSnapshot = 4;
    var dbSQLPassThrough = 64;
     
    main();
     
    function main() {
        var dbe = new ActiveXObject("DAO.DBEngine.36");
        var db = dbe.OpenDatabase( "", false, false, 
              "ODBC;Driver={Oracle in OraDb11g_home1};"
            + "DBQ=ORCL;" 
            + "UID=scott;PWD=tiger" );
        var rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message");
        // パススルークエリの例(データベース側に依存する SQL を実行する場合)
        //var rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message FROM DUAL", dbOpenSnapshot, dbSQLPassThrough );
     
        while ( !rs.EOF )
        {
            WScript.Echo( rs(0).Name );
            WScript.Echo( "-------------------" );
            WScript.Echo( rs(0).Value );
            rs.MoveNext();
        }
     
        rs.Close();
        db.Close();
    }

    実行方法(Windows)

    C:¥> CScript //Nologo Hello.js

    実行結果

    Message
    -----------------
    Hello, DAO World!
  3. Hello, DAO(VBA) World!

    Posted on 9月 12th, 2012 by cx20

    DAO

    DAO(Data Access Object)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
    主に Jet データベース(Access MDB)との接続に用いられるが、ODBC 経由で他の DBMS への接続も可能である。
    長い間 DAO は 32bit 版のみしか提供されていなかったが、DAO 12 より 64bit 版が提供されるようになった。

    クライアントアプリケーション データベースエンジン 推奨されるデータベース形式
    Access 2.0 Jet 2.0 *.mdb (Jet 2.0)
    Access 95 Jet 3.0 *.mdb (Jet 3.x)
    Access 97 Jet 3.5 *.mdb (Jet 3.x)
    Access 2000 Jet 4.0 *.mdb (Jet 4.x)
    Access 2002 Jet 4.0 *.mdb (Jet 4.x)
    Access 2003 Jet 4.0 *.mdb (Jet 4.x)
    Access 2007 ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Access 2010 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Access 2010 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)
    DAO 3.0 Jet 3.0 *.mdb (Jet 3.x)
    DAO 3.5 Jet 3.5 *.mdb (Jet 3.x)
    DA0 3.6 Jet 4.0 *.mdb (Jet 4.x)
    DA0 12 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    DA0 12 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)
    Microsoft.Jet.OLEDB.3.51 Jet 3.5 *.mdb (Jet 3.x)
    Microsoft.Jet.OLEDB.4.0 Jet 4.0 *.mdb (Jet 4.x)
    Microsoft.ACE.OLEDB.12.0 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Microsoft.ACE.OLEDB.12.0 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)

    ソースコード(VBA + DAO + Jet データベース)

    Option Explicit
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("Hello.mdb")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VBA + DAO + ACE データベース)

    Option Explicit
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.120")
        Set db = dbe.OpenDatabase("Hello.accdb")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VBA + DAO + ODBC + SQL Server)

    Option Explicit
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("", False, False, _
            "ODBC;Driver={SQL Server};" & _
            "SERVER=(local);DATABASE=master;" & _
            "UID=sa;PWD=P@ssW0rd;")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VBA + DAO + ODBC + Oracle)

    Option Explicit
     
    Const dbOpenSnapshot = 4
    Const dbSQLPassThrough = 64
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("", False, False, _
            "ODBC;Driver={Oracle in OraDb11g_home1};" & _
            "DBQ=ORCL;" & _
            "UID=scott;PWD=tiger;")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
        ' パススルークエリの例(データベース側に依存する SQL を実行する場合)
        'Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message FROM DUAL", dbOpenSnapshot, dbSQLPassThrough)
     
        While Not rs.EOF
            Debug.Print rs(0).Name
            Debug.Print "-----------------"
            Debug.Print rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    実行結果

    Message
    -----------------
    Hello, DAO World!
  4. Hello, DAO(C++) World!

    Posted on 3月 28th, 2012 by cx20

    DAO(C++)

    DAO(Data Access Object)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。

    ソースコード(VC + DAO3.6 + Jet データベース)

    #include <stdio.h>
    #include <tchar.h>
    #import "dao360.dll" no_namespace rename("EOF", "daoEOF")
     
    int _tmain( int argc, TCHAR* argv[] )
    {
        CoInitialize(NULL);
     
        _DBEnginePtr dbe("DAO.DBEngine.36");
        DatabasePtr db = dbe->OpenDatabase( _T("hello.mdb") );
        RecordsetPtr rs = db->OpenRecordset( _T("SELECT 'Hello, DAO(C++) World!' AS Message") );
     
        while ( !rs->daoEOF )
        {
            _variant_t var = rs->Fields->GetItem( 0L )->Value;
            _tprintf( _T("%sn"), (LPCTSTR)(_bstr_t)var );
            rs->MoveNext();
        }
        rs->Close();
        db->Close();
        rs = NULL;
        db = NULL;
        dbe = NULL;
     
        CoUninitialize();
    }

    ソースコード(VC + DAO12.0 + ACE データベース)

    #include <stdio.h>
    #include <tchar.h>
    #import "acedao.dll" no_namespace rename("EOF", "aceEOF")
     
    int _tmain( int argc, TCHAR* argv[] )
    {
        CoInitialize(NULL);
     
        _DBEnginePtr dbe("DAO.DBEngine.120");
        DatabasePtr db = dbe->OpenDatabase( _T("hello.accdb") );
        RecordsetPtr rs = db->OpenRecordset( _T("SELECT 'Hello, DAO(C++) World!' AS Message") );
     
        while ( !rs->aceEOF )
        {
            _variant_t var = rs->Fields->GetItem( 0L )->Value;
            _tprintf( _T("%sn"), (LPCTSTR)(_bstr_t)var );
            rs->MoveNext();
        }
        rs->Close();
        db->Close();
        rs = NULL;
        db = NULL;
        dbe = NULL;
     
        CoUninitialize();
    }

    ソースコード(VC + DAO3.6 + ODBC + SQL Server)

    #include <stdio.h>
    #include <tchar.h>
    #import "dao360.dll" no_namespace rename("EOF", "daoEOF")
     
    int _tmain( int argc, TCHAR* argv[] )
    {
        CoInitialize(NULL);
     
        _DBEnginePtr dbe("DAO.DBEngine.36");
        DatabasePtr db = dbe->OpenDatabase( _T(""), FALSE, FALSE, 
            _T("ODBC;Driver={SQL Server};SERVER=(local);DATABASE=master;")
            _T("UID=sa;PWD=P@assW0rd;") );
        RecordsetPtr rs = db->OpenRecordset( _T("SELECT 'Hello, DAO(C++) World!' AS Message") );
     
        while ( !rs->daoEOF )
        {
            _variant_t var = rs->Fields->GetItem( 0L )->Value;
            _tprintf( _T("%sn"), (LPCTSTR)(_bstr_t)var );
            rs->MoveNext();
        }
        rs->Close();
        db->Close();
        rs = NULL;
        db = NULL;
        dbe = NULL;
     
        CoUninitialize();
    }

    ソースコード(VC + DAO3.6 + ODBC + Oracle)

    #include <stdio.h>
    #include <tchar.h>
    #import "dao360.dll" no_namespace rename("EOF", "daoEOF")
     
    int _tmain( int argc, TCHAR* argv[] )
    {
        CoInitialize(NULL);
     
        _DBEnginePtr dbe("DAO.DBEngine.36");
        DatabasePtr db = dbe->OpenDatabase( _T(""), FALSE, FALSE, 
            _T("ODBC;Driver={Oracle in OraDb11g_home1};")
            _T("DBQ=ORCL;")
            _T("UID=scott;PWD=tiger;") );
        RecordsetPtr rs = db->OpenRecordset( _T("SELECT 'Hello, DAO(C++) World!' AS Message") );
        // パススルークエリの例(データベース側に依存する SQL を実行する場合)
        //RecordsetPtr rs = db->OpenRecordset( _T("SELECT 'Hello, DAO(C++) World!' AS Message FROM DUAL"), dbOpenSnapshot, dbSQLPassThrough );
     
        while ( !rs->daoEOF )
        {
            _variant_t var = rs->Fields->GetItem( 0L )->Value;
            _tprintf( _T("%sn"), (LPCTSTR)(_bstr_t)var );
            rs->MoveNext();
        }
        rs->Close();
        db->Close();
        rs = NULL;
        db = NULL;
        dbe = NULL;
     
        CoUninitialize();
    }

    コンパイル方法

    C:¥> cl hello.cpp

    実行結果

    Hello, DAO(C++) World!
  5. Hello, DAO(MFC) World!

    Posted on 3月 26th, 2012 by cx20

    DAO(MFC)

    MFC(Microsoft Foundation Class)は、Visual C++ 用のクラスライブラリである。
    MFC DAO クラスは、DAO(Data Access Object)のラップクラスとして実装されている。
    現在、DAO クラスは既存のアプリケーションの保守の為だけに残されており、新しいプロジェクトでは ODBC クラスが推奨されている。
    なお、x64 プラットフォームでは DAO クラスはサポートされておらず、コンパイルエラーとなる。

    ソースコード(VC + MFC + DAO + Jet データベース)

    #include <afx.h>
    #include <afxdao.h>
     
    int _tmain( int argc, TCHAR* argv[] )
    {
        CDaoDatabase db;
        db.Open( _T("hello.mdb") );
     
        CDaoRecordset rs( &db );
        CString strSQL = _T("SELECT 'Hello, DAO(MFC) World!' AS Message");
        rs.Open(dbOpenDynaset, strSQL, dbReadOnly);
     
        while ( !rs.IsEOF() )
        {
            COleVariant varValue = rs.GetFieldValue( 0 );
            _tprintf( _T("%sn"), V_BSTRT( &varValue ) );
            rs.MoveNext();
        }
     
        rs.Close();
        db.Close();
     
        return 0;
    }

    ソースコード(VC + MFC + DAO + ODBC + SQL Server)

    #include <afx.h>
    #include <afxdao.h>
     
    int _tmain( int argc, TCHAR* argv[] )
    {
        CDaoDatabase db;
        db.Open( _T(""), FALSE, FALSE, 
            _T("Driver={SQL Server};SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd") );
     
        CDaoRecordset rs( &db );
        CString strSQL = _T("SELECT 'Hello, DAO(MFC) World!' AS Message");
        rs.Open(dbOpenDynaset, strSQL, dbReadOnly);
     
        while ( !rs.IsEOF() )
        {
            COleVariant varValue = rs.GetFieldValue( 0 );
            _tprintf( _T("%sn"), V_BSTRT( &varValue ) );
            rs.MoveNext();
        }
     
        rs.Close();
        db.Close();
     
        return 0;
    }

    ソースコード(VC + MFC + DAO + ODBC + Oracle)

    #include <afx.h>
    #include <afxdao.h>
     
    int _tmain( int argc, TCHAR* argv[] )
    {
        CDaoDatabase db;
        db.Open( _T(""), FALSE, FALSE, 
            _T("ODBC;Driver={Oracle in OraDb11g_home1};DBQ=ORCL;UID=scott;PWD=tiger;") );
     
        CDaoRecordset rs( &db );
        CString strSQL = _T("SELECT 'Hello, DAO(MFC) World!' AS Message");
        rs.Open(dbOpenDynaset, strSQL, dbReadOnly);
     
        while ( !rs.IsEOF() )
        {
            COleVariant varValue = rs.GetFieldValue( 0 );
            _tprintf( _T("%sn"), V_BSTRT( &varValue ) );
            rs.MoveNext();
        }
     
        rs.Close();
        db.Close();
     
        return 0;
    }

    コンパイル&リンク方法(Visual C++)

    C:¥> cl hello.cpp

    実行結果

    Hello, DAO(MFC) World!
  6. Hello, DAO World!

    Posted on 3月 22nd, 2012 by cx20

    DAO

    DAO(Data Access Object)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
    主に Jet データベース(Access MDB)との接続に用いられるが、ODBC 経由で他の DBMS への接続も可能である。
    長い間 DAO は 32bit 版のみしか提供されていなかったが、DAO 12 より 64bit 版が提供されるようになった。

    クライアントアプリケーション データベースエンジン 推奨されるデータベース形式
    Access 2.0 Jet 2.0 *.mdb (Jet 2.0)
    Access 95 Jet 3.0 *.mdb (Jet 3.x)
    Access 97 Jet 3.5 *.mdb (Jet 3.x)
    Access 2000 Jet 4.0 *.mdb (Jet 4.x)
    Access 2002 Jet 4.0 *.mdb (Jet 4.x)
    Access 2003 Jet 4.0 *.mdb (Jet 4.x)
    Access 2007 ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Access 2010 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Access 2010 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)
    DAO 3.0 Jet 3.0 *.mdb (Jet 3.x)
    DAO 3.5 Jet 3.5 *.mdb (Jet 3.x)
    DA0 3.6 Jet 4.0 *.mdb (Jet 4.x)
    DA0 12 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    DA0 12 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)
    Microsoft.Jet.OLEDB.3.51 Jet 3.5 *.mdb (Jet 3.x)
    Microsoft.Jet.OLEDB.4.0 Jet 4.0 *.mdb (Jet 4.x)
    Microsoft.ACE.OLEDB.12.0 (32bit) ACE 12.0 (32bit) *.accdb (ACE 12.0)
    Microsoft.ACE.OLEDB.12.0 (64bit) ACE 12.0 (64bit) *.accdb (ACE 12.0)

    ソースコード(VBScript + DAO + Jet データベース)

    Option Explicit
     
    Call Main()
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("Hello.mdb")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            WScript.Echo rs(0).Name
            WScript.Echo "-----------------"
            WScript.Echo rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VBScript + DAO + ACE データベース)

    Option Explicit
     
    Call Main()
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.120")
        Set db = dbe.OpenDatabase("Hello.accdb")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            WScript.Echo rs(0).Name
            WScript.Echo "-----------------"
            WScript.Echo rs(0).Value
            rs.MoveNext
        Wend
    End Sub

    ソースコード(VBScript + DAO + ODBC + SQL Server)

    Option Explicit
     
    Call Main()
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("", False, False, _
            "ODBC;Driver={SQL Server};" & _
            "SERVER=(local);DATABASE=master;" & _
            "UID=sa;PWD=P@ssW0rd;")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
     
        While Not rs.EOF
            WScript.Echo rs(0).Name
            WScript.Echo "-----------------"
            WScript.Echo rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    ソースコード(VBScript + DAO + ODBC + Oracle)

    Option Explicit
     
    Const dbOpenSnapshot = 4
    Const dbSQLPassThrough = 64
     
    Call Main()
     
    Sub Main()
        Dim dbe
        Dim db
        Dim rs
     
        Set dbe = CreateObject("DAO.DBEngine.36")
        Set db = dbe.OpenDatabase("", False, False, _
            "ODBC;Driver={Oracle in OraDb11g_home1};" & _
            "DBQ=ORCL;" & _
            "UID=scott;PWD=tiger;")
        Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message")
        ' パススルークエリの例(データベース側に依存する SQL を実行する場合)
        'Set rs = db.OpenRecordset("SELECT 'Hello, DAO World!' AS Message FROM DUAL", dbOpenSnapshot, dbSQLPassThrough)
     
        While Not rs.EOF
            WScript.Echo rs(0).Name
            WScript.Echo "-----------------"
            WScript.Echo rs(0).Value
            rs.MoveNext
        Wend
     
        rs.Close
        db.Close
    End Sub

    実行方法(Windows)

    C:¥> CScript //Nologo Hello.vbs

    実行結果

    Message
    -----------------
    Hello, DAO World!