開発環境 メモ帳
実行環境 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