JavaScript基于activexobject连接远程数据库SQL Server 2014的方法


Posted in Javascript onJuly 12, 2017

本文实例讲述了JavaScript基于activexobject连接远程数据库SQL Server 2014的方法。分享给大家供大家参考,具体如下:

最近翻开一本10年前买的JavaScript的书,这本书买回来只看了前半部分,后面的一直没看,也一直没有从事这方的工作。

看到有一节写着js连access接数据库,于是照着书上的代码,写了一段在chrome浏览器中运行,发现完全没反应。

查了一下才发现,这个activexobject只有微软的IE支持,其他的浏览器都不支持,我想可能是由于连接数据库、访问文件等属于不安全的操作,应该是让服务器端来做,所以才导致绝大多数浏览器都不支持这个功能。

不过如果从另一个角度看,实际上这种功能适合服务器端的javascript,也就是说下面的代码适合在服务器端运行,而不是在客户端运行。

还有,如果这个代码仅仅是在本地的个人电脑上运行,也是有用的。

比如,我只是想连接数据库,然后把结果输出,我不想搭建一个web服务器,然后还得写个服务器端程序,也不想安装其他软件,太麻烦,比如,用Java或者c#等,就是想越简单越好,什么也不用装。其实这么一想,好像也只有用浏览器能达到这个要求了,浏览器特别方便,也无需安装,所见即所得,也方便调试代码。

所以,从这个特殊的需求来看,这个功能再适合不过了。

接下来说一下代码的基本思路:

(1)通过window.ActiveXObject 判断是否支持activexobject。
(2)获取浏览器名称、平台、版本。
(3)通过activexobject获取了E盘的卷名称
(4)连接sql server 2014,数据库名test,数据源是另外一台机器的ip地址或者主机名。
(5)连接上后,执行sql:select * from tb,查询数据。
(6)遍历每行数据,同时在循环中遍历1行数据中的每个字段的值。

创建数据库、创建表代码:

create database Test;
go
use test;
go
if object_id('tb') is not null
  drop table tb;
go
CREATE TABLE TB(ID INT,NAME NVARCHAR(20),SCORE NUMERIC(10,2));
INSERT INTO TB(ID,NAME,SCORE)
VALUES(1,'语文',100),
   (2,'数学',80),
   (3,'英语',900),
   (4,'政治',65),
   (5,'物理',65),
   (6,'化学',85),
   (7,'生物',55),
   (8,'地理',100)

JavaScript基于activexobject连接远程数据库SQL Server 2014的方法

javascript 代码:

<!doctype html>
<html>
 <head>
  <meta charset="gb2312">
  <title>Document</title>
  <script language="javascript">
    function query()
    {
      var ss = (window.ActiveXObject) ? "此浏览器支持ActiveXObject" : "此浏览器不支持ActiveXObject";
      //alert(navigator.appVersion);
      var xx = document.getElementById("support");
      var a = ( navigator.appVersion+";").split(";");
      xx.innerHTML = "浏览器名称:" + navigator.appName +"<br>" +
              "浏览器平台:" + navigator.platform +"<br>" +
              "浏览器版本:" + a[1].replace("MS","") + "<br>"+
              "<br><b>"+ss+"</b><br><br>";
      var o = new ActiveXObject("Scripting.FileSystemObject");
      var od = o.GetDrive("E");
      xx.innerHTML += ("E盘的卷名称是:" + od.VolumeName);
      //连接数据库
      var db = new ActiveXObject("ADODB.Connection");
      db.open("Provider=SQLOLEDB.1;Data Source=WIN-6;User ID=sa;Password=yupeigu;Initial Catalog=test");
      var rs = db.Execute("select * from tb");
      var c = rs.Fields.Count-1;
      //拼接表的字段名称
      var str = "<table border=1><tr>";
      for(var i = 0; i <=c; i++)
      {
        str += "<td>" + rs.Fields(i).Name + "</td>";
      }
      str += "</tr>";
      //拼接表的数据
      while(!rs.EOF)
      {
        str += "<tr>";
        for(var i = 0;i <= c; i++)
        {
          str += "<td>" + rs.Fields(i).Value + "</td>";
        }
        str += "</tr>";
        rs.moveNext();
      }
      str += "</table>";
      var yy = document.getElementById("sp");
      yy.innerHTML = str;
      rs.Close();
      db.Close();
    }
  </script>
 </head>
 <body >
  <input type="button" onclick="query()" value="查询SQL Server 2014的Test数据库的tb表数据">
  <p>
    <span id="support"></span>
    <hr><br>
    <span id="sp"></span>
  </p>
 </body>
</html>

在IE11 和 IE7 上运行的效果

JavaScript基于activexobject连接远程数据库SQL Server 2014的方法

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
一个XML格式数据转换为图表的例子
Feb 09 Javascript
有道JavaScript监听浏览器的问题
Jun 23 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
node.js 使用ejs模板引擎时后缀换成.html
Apr 22 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
JavaScript中附件预览功能实现详解(推荐)
Aug 15 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
Feb 04 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
canvas多重阴影发光效果实现
Apr 20 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
Jul 12 #Javascript
详解Node项目部署到云服务器上
Jul 12 #Javascript
angular.js中解决跨域问题的三种方式
Jul 12 #Javascript
JavaScript+HTML5实现的日期比较功能示例
Jul 12 #Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
Jul 12 #Javascript
Bootstrap提示框效果的实例代码
Jul 12 #Javascript
JavaScript输出所选择起始与结束日期的方法
Jul 12 #Javascript
You might like
用PHP和ACCESS写聊天室(七)
2006/10/09 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
react-native android状态栏的实现
2018/06/15 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
python3正则模块re的使用方法详解
2020/02/11 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
工作简报格式范文
2015/07/21 职场文书
数学备课组工作总结
2015/08/12 职场文书
早恋主题班会
2015/08/14 职场文书
销售口号霸气押韵
2015/12/24 职场文书
keepalived + nginx 实现高可用方案
2022/12/24 Servers