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();
} |
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();
} |
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();
} |
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();
} |
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 |
C:¥> CScript //Nologo Hello.js
実行結果
Message
-----------------
Hello, DAO World! |
Message
-----------------
Hello, DAO World!
Tags: DAO
Categories: DAO, JavaScript