JavaScript(Jscript)でのMDB接続

JavaScript(Jscript)でADO(ActiveX Data Objects)オブジェクトを作成してMDB(Accessデータベース)に接続します。ADOオブジェクトは、new ActiveXObject("ADODB.Connection")で作ります。IE(Internet Explorer)のセキュリティなどでActiveXコントロールを実行しないようになっている場合、エラーになりますので注意が必要です。

SQLを実行しMDBよりデータを取得する

<script language="JavaScript">
function selectDb(sql){
	//MDBへのパスを設定する
	var dbPath = "C:\\data\\data.mdb;";
	//レコードセットオブジェクト
	var rs = null;
	try {
		//ADOを使いMDBをオープンする
		gConnection = null;
		gConnection = new ActiveXObject("ADODB.Connection");
		gConnection.Open("Driver={Microsoft Access Driver (*.mdb)};"
		 + " DBQ=" + dbPath);

		//レコードセットオブジェクトを作成する
		rs = new ActiveXObject("ADODB.Recordset");
		//SQLを実行しMDBよりデータを取得する
		rs.ActiveConnection = gConnection;
		rs.Open(sql);
	} catch(e1) {
		if(rs != null){
			//レコードセットをクローズします
			try {rs.Close();} catch(e2) {}
			rs = null;
		}
		if(gConnection != null){
			//ADOをクローズします
			gConnection.Close();
			gConnection = null;
		}
		throw e1;
	}

	return rs;
}
</script>

SQLを実行しMDBのデータを更新する

<script language="JavaScript">
function executeSql(sqlList){
	//MDBへのパスを設定する
	var dbPath = "C:\\data\\data.mdb;";
	try {
		//ADOを使いMDBをオープンする
		gConnection = null;
		gConnection = new ActiveXObject("ADODB.Connection");
		gConnection.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" + dbPath);
	
		//トランザクションを開始します
		gConnection.BeginTrans();

		//配列に設定されているSQLを実行します
		for(var i=0,maxi=sqlList.length;i<maxi;i++){
			//更新SQLを実行します
			gConnection.Execute(sqlList[i]);
		}

		//コミット
		gConnection.CommitTrans();

	} catch(e) {
		if(gConnection != null){
			//ロールバック
			gConnection.RollbackTrans();
		}
		throw e;
	} finally {
		if(gConnection != null){
			//ADOをクローズします
			gConnection.Close();
			gConnection = null;
		}
	}

	return;
}
</script>

inserted by FC2 system