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字符串处理性能的代码
Dec 07 Javascript
javascript 显示当前系统时间代码
Dec 28 Javascript
js indexOf()定义和用法
Oct 21 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
Jul 03 Javascript
jquery遍历checkbox的注意事项说明
Feb 21 Javascript
jQuery获取select选中的option的value值实现方法
Aug 29 Javascript
详解js中Json的语法与格式
Nov 22 Javascript
JS实现图片预加载之无序预加载功能代码
May 12 Javascript
vue.js实现条件渲染的实例代码
Jun 22 Javascript
AngularJS 最常用的八种功能(基础知识)
Jun 26 Javascript
vue-cli的工程模板与构建工具详解
Sep 27 Javascript
mpvue+vant app搭建微信小程序的方法步骤
Feb 11 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
php中in_array函数用法分析
2014/11/15 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
python根据经纬度计算距离示例
2014/02/16 Python
python提取内容关键词的方法
2015/03/16 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python 多个参数不为空校验方法
2019/02/14 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
体育学院毕业生自荐信
2013/11/03 职场文书
医学生自我评价
2014/01/27 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
《雷雨》教学反思
2014/02/20 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
车辆转让协议书
2014/04/15 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
民事和解协议书格式
2014/11/29 职场文书
教师见习总结范文
2015/06/23 职场文书
餐厅开业活动方案
2019/07/08 职场文书
Java实现房屋出租系统详解
2021/10/05 Java/Android