javascript 连接数据库

来源:互联网 发布:淘宝品控违规怎么处理 编辑:程序博客网 时间:2024/05/18 04:27
javascript与Access数据库连接的方法


文件构成:
Access数据库名为 MyData.Mdb, 里面建了一个名为count的表,表由两个
字段组成: ID和COUNT,表里有一条数据: ('count','100')。
文本文件名为 count.txt,里面随便写入一个数字。
静态页面名为Cnt.htm。
以上3个文件都放在同一目录下。


由于采用Access数据库,而它采用非标准SQL语法,所以要注意在表名
和字段名上需要加方括号: [ ] 


下面是页面里的代码:


其中getCountFromDB方法是对Access数据库进行操作,getCountFromTxt
方法是对txt纯文本进行操作,这两个方法都在本地执行通过。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function getCountFromDB() {
//以当前页面文件为基础,找到文件所在的绝对路径。
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "MyData.mdb";
//去掉字符串中最前面的"files://"这8个字符。
path = path.substring(8);
var updateCnt = 0;


//生成查询和更新用的sql语句。
var sqlSelCnt = "SELECT COUNT FROM [COUNT] WHERE ID = 'count'";
var sqlUpdCnt = "UPDATE [COUNT] SET [COUNT] = '";


//建立连接,并生成相关字符串


var con = new ActiveXObject("ADODB.Connection");
con.Provider = "Microsoft.Jet.OLEDB.4.0";
con.ConnectionString = "Data Source=" + path;


con.open;
var rs = new ActiveXObject("ADODB.Recordset");
rs.open(sqlSelCnt, con);
while (!rs.eof) {
var cnt = rs.Fields("COUNT");
document.write(cnt);
//将取得结果加1后更新数据库。
updateCnt = cnt * 1 + 1;
rs.moveNext;
}
rs.close();
rs = null;


sqlUpdCnt = sqlUpdCnt + updateCnt + "'";
con.execute(sqlUpdCnt);


con.close();
con = null;
}


function getCountFromTxt() {
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "count.txt";
path = path.substring(8);
var nextCnt = 0;


var fso, f1, ts, s;
//以只读方式打开文本文件。
var ForReading = 1;
//以读写方式打开文本文件。
var ForWriting = 2;


fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile(path);
ts = f1.OpenAsTextStream(ForReading, true);
s = ts.ReadLine();
nextCnt = eval(s) + 1;
document.write("now count is :" + s);
ts.Close();


ts = f1.OpenAsTextStream(ForWriting, true);
ts.WriteLine(nextCnt);
ts.close();
}
//-->
</SCRIPT>
</HEAD>


<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
getCountFromTxt();
//-->
</SCRIPT>
</BODY>
</HTML>


--------------------------------------------------------


以下为:javascript与SQL数据库连接的方法


<script language=javascript> 
function replace(v)



  //容错问题,请读者自行进行判断。
  //定义SQL语句
  var sql = "select * from Dictionary where MainID='" + v + "'" ;
  //新建数据库连接对象和数据集存取对象
  var ConnDB = new ActiveXObject("adodb.connection"); 
  var rs = new ActiveXObject("ADODB.Recordset"); 
  //这里填入要连接的DSN
  ConnDB.ConnectionString="DSN=***;uid=***;pwd=***"; 
  ConnDB.open 
  rs.open(sql,ConnDB,1,1); 
  if (rs.RecordCount>0)


  { 
    if (v==parseInt(rs("MainID"))){ 
      //字符串连接
      document.all('txt').value = v + rs("MainValue"); 
      var sql=null;
      rs.close
      ConnDB.close
      return; 
    } else { 
      var sql=null; 
      alert("没有此代号!"); 
      txt.select(); 
      txt.focus(); 
      rs.close
      ConnDB.close
    } 
  }



</script>
<input type=text id=txt name=txt onblur="replace(this.value)">
0 0