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>