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!

Tags:

Categories: DAO, JavaScript

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing