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 相关文章推荐
escape、encodeURI 和 encodeURIComponent 的区别
Mar 02 Javascript
解决jQuery插件tipswindown与hintbox冲突
Nov 05 Javascript
JS 日期比较大小的简单实例
Jan 13 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
Sep 24 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
vue中SPA单页面应用程序详解
Nov 07 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
Nov 15 Javascript
通过 JS 判断页面是否有滚动条的实现方法
Apr 05 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
php 模拟get_headers函数的代码示例
2013/04/27 PHP
PHP四大安全策略
2014/03/12 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python使用socket连接远程服务器的方法
2015/04/29 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python3实现逐字输出的方法
2019/01/23 Python
python字典的常用方法总结
2019/07/31 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
司法建议书范文
2014/05/13 职场文书
党员演讲稿
2014/09/04 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
公司备用金管理制度
2015/08/04 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书