基本的な使い方は、まず次のように Connection オブジェクトを得ます。
var Conn = WScript.CreateObject("ADODB.Connection");
次に、データベースに接続します。
Conn.Open(ConnectionString);
そして、SQL文やテーブル名を指定して Recordset オブジェクトを得ます。
var rs = Conn.Execute(CommandText);
次に例を用意しました。
ここで使っているデータベースのソースは、
DAOのときと同じものです。
ここでは DSN を使っていないデータベースを扱っていますが、
DSN を使った例はそこら中にあるので適当に検索してください。
score.lzh(score.mdbをLHAで圧縮したもの 8kB)
scripts/score5.js
---------------------------------------------------------------------
var Conn = WScript.CreateObject("ADODB.Connection");
Conn.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq=score.mdb;");
var rs = Conn.Execute("SELECT Sum(算数) AS 総得点 FROM Score");
WScript.Echo(rs.Fields("総得点").Value);
rs.Close();
実は、上に書いた構造にあるようにいきなり
Recordsetオブジェクトを得ることができます。
var rs = WScript.CreateObject("ADODB.Recordset");
そして、次のようにデータベースに接続してSQL文を発行してRecordsetを得ます。
rs.Open(CommandText, ConnectionString);
引数は上と同じです。
scripts/score6.js
-------------------------------------------------------------------
var rs = WScript.CreateObject("ADODB.Recordset");
rs.Open("SELECT Sum(算数) AS 総得点 FROM Score",
"Driver={Microsoft Access Driver (*.mdb)};Dbq=score.mdb;");
WScript.Echo(rs.Fields("総得点").Value);
rs.Close();
Excelは
DAOでも書いたようにテーブル名を指定するところが
特徴的です。
scripts/score7.js
------------------------------------------------------------------
var rs = WScript.CreateObject("ADODB.Recordset");
rs.Open("SELECT Sum(算数) AS 総得点 FROM [Score$]",
"Driver={Microsoft Excel Driver (*.xls)};Dbq=score.xls;");
WScript.Echo(rs.Fields("総得点").Value);
rs.Close();
テキストファイルは、パスにディレクトリを、テーブル名にファイルを指定します。
scripts/score8.js
---------------------------------------------------------------
var rs = WScript.CreateObject("ADODB.Recordset");
rs.Open("SELECT Sum(算数) AS 総得点 FROM score2.csv",
"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=.");
WScript.Echo(rs.Fields("総得点").Value);
rs.Close();
ソースのscore2.csvは次の通りです。
scripts/score2.csv
---------------------------
名前,性,国語,算数,理科,社会
さくら,女,75,71,8,66
知世,女,62,2,89,60
小狼,男,51,28,70,31
千春,女,68,61,46,12
奈緒子,女,89,55,69,24
利佳,女,79,30,79,81
WSH2.0以上なら
タイプライブラリを参照することによって、
ADOの定数を使うことができます。
次の例は、テキストのデータベースにレコードを追加します。
ここでは、
adOpenKeyset,
adLockOptimistic,
adCmdTableを使っています。
scripts/addnew.wsf
--------------------------------------------------------------
<JOB ID="exceltest">
<REFERENCE GUID="{00000205-0000-0010-8000-00AA006D2EA4}"/>
var rs = WScript.CreateObject("ADODB.Recordset");
rs.Open("score2.csv",
"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=.",
adOpenKeyset, adLockOptimistic, adCmdTable);
rs.AddNew();
rs.Fields("名前").Value = "エリオル";
rs.Fields("性").Value = "男";
rs.Fields("国語").Value = 10;
rs.Fields("算数").Value = 20;
rs.Fields("理科").Value = 30;
rs.Fields("社会").Value = 40;
rs.Update();
rs.Close();
</SCRIPT>
</JOB>