用javascript连接数据库的解决方法

文件构成:
  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] = '"; 
    //建立连接,并生成相关字符串 www.knowsky.com。 
    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连接数据库的方法:

<script language=javascript> 
// ^_^  
//  
//(c) in 2002-2003 by Alex(Chinese:蒋健华) 
//http://www.finder.net.cn  
//C Email: jiangjh@finder.net.cn 
//F Email: jjh_115@eyou.com  
</script> 
<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 οnblur="replace(this.value)">

本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/4838.htm 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值