Archive for 9月 15th, 2012
-
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!