天天看点

Javascript读取ACCESS数据库

 这些操作也许用不上,但也帖上来,网上也有很多相关例子,不多说帖出我自己改写的一段,欢迎指正

说明:

在存html文件的目录下有一个存放数据库的子目录:webData,其中的数据库名为scData.mdb

数据库中有一个userlist的表,有userid和username两个字段,并有一条userid='999',username='smallcol'的测试数据

js代码:

文件scEngine.js

//仿数据库连接池类

function scDBPool(){

    try{

         this.con=new ActiveXObject("ADODB.Connection");

         this.con.Provider="Microsoft.Jet.OLEDB.4.0";

         this.rs=new ActiveXObject("ADODB.Recordset");

    }catch(e){

         this.con=null;

         this.rs=null;

    }

    this.filePath=null;

    this.dbPath=null;

};

//设置数据库文件相对(定位文件)路径和数据库名

scDBPool.prototype.setDB=function(dbPath){

    this.dbPath=dbPath;

};

//设置数据库定位文件,这一步可以进连接类中,这里写是方便使用任何名字的数据库

scDBPool.prototype.setDBPathPosition=function(urlFile){

    var filePath=location.href.substring(0, location.href.indexOf(urlFile));

    this.dbPath=(this.dbPath==null||this.dbPath=="") ? "/webData/scData.mdb" : this.dbPath;

    var path=filePath+this.dbPath;

   //去除path前面的"files://"字符串

    this.filePath=path.substring(8);

};

//同数据库建立连接

scDBPool.prototype.connect=function(){

    this.con.ConnectionString="Data Source="+this.filePath;

    this.con.open;

};

//执行数据库语句返回结果集

scDBPool.prototype.executeQuery=function(sql){

    this.rs.open(sql,this.con);

};

//执行数据库语句不返回结果集

scDBPool.prototype.execute=function(sql){

    this.con.execute(sql);

};

//关闭结果集

scDBPool.prototype.rsClose=function(){

    this.rs.close();

    this.rs=null;

};

//关闭数据连接

scDBPool.prototype.conClose=function(){

    this.con.close();

    this.con=null;

};

html文件中调试应用,页面aa.html为数据库相对定位文件

<script language="javascript">

var db=new scDBPool();

db.setDBPathPosition("aa.html");

db.connect();

var sql="select * from [userlist] where userid = '999'";

db.executeQuery(sql);

while(!db.rs.eof){

    var cnt = db.rs.Fields("username");

    document.write(cnt);

    db.rs.moveNext;

}

db.rsClose();

db.conClose();

</script>

以上为个人参考网上改写,有错误的地方请指正,谢谢,本人正在不断学习中