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 相关文章推荐
jquery 事件执行检测代码
Dec 09 Javascript
利用jquery操作select下拉列表框的代码
Jun 04 Javascript
javascript弹出层输入框(示例代码)
Dec 11 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
Bootstrap轮播插件简单使用方法介绍
Jun 21 Javascript
JS简单实现自定义右键菜单实例
May 31 Javascript
vue组件间通信六种方式(总结篇)
May 15 Javascript
基于Node.js的大文件分片上传示例
Jun 19 Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 Javascript
微信小程序实现按字母排列选择城市功能
Nov 25 Javascript
webpack的移动端适配方案小结
Jul 25 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 无限分类的树类代码
2009/12/03 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
解析window.open的使用方法总结
2013/06/19 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
微信小程序 同步请求授权的详解
2017/08/04 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
python实现自动化上线脚本的示例
2019/07/01 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
大学生大二自我鉴定
2013/10/28 职场文书
商务英语毕业生自荐信范文
2013/11/08 职场文书
个人实用的自我评价范文
2013/11/23 职场文书
市场营销专科应届生求职信
2013/11/24 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
python使用glob检索文件的操作
2021/05/20 Python
MySQL中varchar和char类型的区别
2021/11/17 MySQL
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏