如何用javascript连接access数据库

2020-03-20 16:00:33来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

在学习JavaScript中是不是很多小伙伴们都不知道如何用javascript连接access数据库呢?那么今天我们就和爱站小编一起去看看javascript连接access数据库的具体方法。
------------------------------------------
???这几天费了挺大力气在网上查找javascript连接access数据库的方法,经过整理总结,终于写出一段能够有效执行的代码。

????但是这段代码在本地可以正常运行,一旦放到免费个人空间上就没法执行了,主要原因就是操作权限不够,由于只支持静态页面的免费空间多数都作了非常严格的限制,所以无论是用mdb的方式,还是读写纯文本文件的方式都没办法通过,而由页面报出js错误。国外的一些免费空间,直接就禁止mdb
这样扩展名的文件上传。

????虽然没希望在纯静态页面的免费空间上作自己的计数器或是留言版,但是这段程序也许还是对一些朋友有用处,写出来供各位研究一下。

文件构成:
??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>

?

后记:虽然在只支持静态页面的免费空间不可用,但是我想一些支持Asp的免费空间应该能用,当然我没有具体试过,只是凭自己想象。
并且用这种方法来读写数据库,只适合做计数器和留言版这样的不需要保密性的工作,毕竟代码全是用javascript写成的,谁都可以看到,然后就可以得到路径把db文件下载下来进行分析,所以没办法用它来保存一些不想让别人知道的东西。就像我一个同事说的,用javascript连接数据库进行操作,简直就是霸王硬上弓,呵呵,的确如此,既然不能用在免费空间上作自己的计数器,那这段代码就只能用来玩玩,自己找找良好感觉了。
-----------------------------
好多网上的朋友都在解决某些问题的时候,都感觉到很困惑,而很多人都觉得用javascript连接数据库很是不理解,甚至于就断定javascript只能被客户端所执行,不能连接数据库,而且我查找了一下,CSDN上介绍的太笼统,初学者根本就看不懂,其他的论坛我没有搜索。介于此种情况,我决定好好看看MSDN?,通过看了VC++的连接数据库的例子,总结出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?onblur="replace(this.value)">?

上文就是小编介绍如何用javascript连接access数据库的内容,文中主要涉及javascript针对access数据库的连接、关闭及增删改查等常用操作技巧。?


原文链接:https://js.aizhan.com/develop/JavaScript/12213.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:js中去掉字串左右空格

下一篇:JavaScript函数表达式详解及实例