如何用javascript连接access数据库
2020-03-20 16:00:33来源:爱站网 阅读 ()
在学习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纯文本进行操作,这两个方法都在本地执行通过。?
?
<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连接数据库的方法,现公布给大家
?
//?^_^??
//??
//(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面向对象入门基础详细介绍 2020-03-29
- JavaScript函数表达式详解及实例 2020-03-25
- js中去掉字串左右空格 2020-03-20
- Javascript中的经典技巧 2020-03-20
- ?javascript如何控制上传文件的大小 2020-03-19
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash