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 相关文章推荐
javascript 触发事件列表 比较不错
Sep 03 Javascript
jQuery与其它库冲突的解决方法
Jun 25 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
Jan 02 Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 Javascript
JS根据生日算年龄的方法
May 05 Javascript
vue实现简单实时汇率计算功能
Jan 15 Javascript
BootStrap注意事项小结(五)表单
Mar 10 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
跨域请求两种方法 jsonp和cors的实现
Nov 11 Javascript
React通过redux-persist持久化数据存储的方法示例
Feb 14 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
PHP实现网上点歌(二)
2006/10/09 PHP
PHPMyAdmin 快速配置方法
2009/05/11 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
用python 制作图片转pdf工具
2015/01/30 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
python如何把字符串类型list转换成list
2020/02/18 Python
python实现吃苹果小游戏
2020/03/21 Python
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
计算机实训报告范文
2014/11/05 职场文书
教师培训简讯
2015/07/20 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
vue 自定义组件添加原生事件
2022/04/21 Vue.js