開発環境 |
メモ帳 |
実行環境 |
Windows 8.1 (64bit) |
sql1.js
// sql1.js
main();
function main()
{
var con = new ActiveXObject("ADODB.Connection");
con.Open("Driver={Microsoft Text Driver (*.txt; *.csv)}; ReadOnly=1;");
WScript.Echo("Provider=" + con.Provider);
var rs = con.Execute("select count(*) as count from drop.csv");
var count = rs.Fields("count").Value;
rs.Close();
WScript.Echo("count=" + count);
con.Close();
return 0;
}
drop.csv
20150514-162603,10101,,0,10003,50,1,720
20150514-162635,10102,,0,6009,50,1,720
20150514-162727,10101,,0,0,50,1,720
schema.ini
[drop.csv]
ColNameHeader=False
cs.bat
C:\Windows\SysWOW64\cscript %1
実行例
C:\Projects\JScript\sql>cs sql1.js
C:\Projects\JScript\sql>C:\Windows\SysWOW64\cscript sql1.js
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Provider=MSDASQL.1
count=3
schema.iniが無いとColNameHeader=Trueと見なされる。
普通にcscriptを起動すると64bit版が起動する。
その為、32bit版cscriptを起動する
バッチファイル(cs.bat)を用意した。
インストールされているODBCドライバーの確認
コントロールパネル→システムとセキュリティ→管理ツール
ODBC データ ソース (32 ビット)
ODBC データ ソース (64 ビット)
[ドライバー]タブ
テーブルファイルの拡張子が既定外だと以下の様なエラーが出る。
C:\Projects\[[JScript]]\sql\sql1.js(10, 2) Microsoft OLE DB Provider for ODBC Driver
s: [Microsoft][ODBC テキスト Driver] データベースまたはオブジェクトは読み取り専
用なので、更新できません。
レジストリには以下の様に登録されている。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Text
DisabledExtensions
!txt,csv,tab,asc,tmp,htm,html
sql2.js
// sql2.js
main();
function main()
{
var con = new ActiveXObject("ADODB.Connection");
con.Open("Driver={Microsoft Text Driver (*.txt; *.csv)}; ReadOnly=1;");
var rs = con.Execute("select * from drop.csv");
while (! rs.EOF) {
var line = "";
for (var i = 0; i < rs.Fields.Count; i++) {
line += rs.Fields(i).Value + " ";
}
WScript.Echo(line);
rs.MoveNext();
}
rs.Close();
con.Close();
return 0;
}
実行例
C:\Projects\JScript\sql>cs sql2.js
C:\Projects\JScript\sql>C:\Windows\SysWOW64\cscript sql2.js
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
20150514-162603 10101 null 0 10003 50 1 720
20150514-162635 10102 null 0 6009 50 1 720
20150514-162727 10101 null 0 0 50 1 720
sql3.js
// sql3.js
main();
function main()
{
var con = new ActiveXObject("ADODB.Connection");
con.Open("Driver={Microsoft Text Driver (*.txt; *.csv)}; ReadOnly=1;");
var rs = con.Execute("select * from drop2.csv");
for (var i = 0; i < rs.Fields.Count; i++) {
WScript.Echo((i + 1) + ") " + rs.Fields(i).Name + ":" + rs.Fields(i).Value);
}
rs.Close();
con.Close();
return 0;
}
drop2.csv
timestamp,map,rank,equip,unit,exp,num,exp1,exp2,exp3,exp4,exp5
20150514-162603,10101,,0,10003,50,1,720
20150514-162635,10102,,0,6009,50,1,720
20150514-162727,10101,,0,0,50,1,720
実行例
C:\Projects\JScript\sql>cs sql3.js
C:\Projects\JScript\sql>C:\Windows\SysWOW64\cscript sql3.js
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
1) timestamp:20150514-162603
2) map:10101
3) rank:null
4) equip:0
5) unit:10003
6) exp:50
7) num:1
8) exp1:720
9) exp2:null
10) exp3:null
11) exp4:null
12) exp5:null
最終更新:2015年05月23日 17:42