使用JS访问本地数据库
1 前言
有时候,数据业务比较大,比如查询百万级的数据,如果使用JSP查询数据库,JSP的返回结果一般放在域名后面返回给客户端,而返回结果的长度是有限制的,数据过长可能会丢失部分数据;另一方面数据量大,占用带宽大,网络延时较长。
使用JS绕过后台Web服务器,直接访问本地数据库服务器,虽然会有些不安全,但却能够访问大数据,并且不占用带宽。
2案例
在本地SQL Server建立数据库testdb.mdf,建一个表stu,表下有三个属性:ID、name、gae。查询stu表下所有记录,并显示,代码如下:
operate_db.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>SQL数据查询</title>
</head>
<body>
<script >
var conn = new ActiveXObject("ADODB.Connection"); //创建连接对象
conn.Open("Driver={SQL Server};SERVER=localhost;Trusted_Connection=SSPI;DATABASE=testdb"); //打开数据库
//conn.Open("Driver={SQL server};Server=.;DataBase=testdb;UID=sa;Password=0.;"); //打开数据库
//这两种链接都可以,但上面那种较佳,任何登录名都可以
var rs = conn.Execute("select * from stu");
//var rs = new ActiveXObject("ADODB.Recordset");
//rs.open("select * from stu", conn);
//这两种查询数据库的方法都可以,但上面那种更简洁
var count = rs.Fields.Count; //获取字段数
if(!rs.EOF){
document.write("<table><tr>");
for (var i=0; i < count; i++){
document.write("<th>" + rs.Fields(i).Name + "</th>");
}
document.write("</tr>");
while (!rs.EOF){
document.write("<tr>");
for (i=0; i <count; i++){
document.write("<td>" + rs.Fields(i).Value + "</td>");
}
document.write("</tr>");
rs.moveNext();
}
document.write("</table>");
}else{
document.write("数据库记录为空!<br>");
}
rs.close();
conn.close();
</script>
</body>
</html>

3注意事项
如果出现如下报错提示:

请按照如下步骤操作:
(1)换用IE浏览器
ActiveXObject是IE提供的,只有IE能用。如果还未解决问题,请按照(2)中方法配置IE浏览器ActiveX控件和插件属性。
(2)配置IE浏览器ActiveX控件和插件属性
Internet 选项 -> 安全 - >自定义级别 - > ActiveX控件和插件

声明:本文转自使用JS访问本地数据库
使用JS访问本地数据库的更多相关文章
- iphone/iOS 访问本地数据库sqlite3
Phone也支持访问本地数据库Sqlite 3.这里简单的介绍一下iPhone上Sqlite 3的使用方法. 首先需要在项目中引用Sqlite 3的开发包,下面是在iPhone SDK 3.0下的目录 ...
- [转]html5 js 访问 sqlite 数据库的操作类
本文转自:http://blog.csdn.net/tsxw24/article/details/7613815 webkit 核心的浏览器提供了 3个 api接口,用于访问本地sqlite数据,但使 ...
- node.js连接本地数据库及json返回数据
新建一个文件夹node.js,目录下打开命令初始化一下 cnpm init 然后下载express框架 cnpm install express --save 接着下载数据库的依赖 cnpm inst ...
- node.js简单搭建服务,访问本地站点文件
1.安装nodejs服务(从官网下载安装),node相当于apache服务器 2.在自己定义的目录下新建服务器文件如 server.js 例如,我在D:\nodeJs下创建了server.js文件 v ...
- WebService访问oracle数据库本地调试
WebService访问oracle数据库本地调试-一步一个坑 上篇文章提到我们额数据库挂了,重装了数据库,然后呢我需要在本地调试WebService,看看那些数据结构缺失,迁移到新数据库中去.踩坑之 ...
- Holer实现外网访问本地MySQL数据库
外网访问内网MySQL数据库 内网主机上安装了MySQL数据库,只能在局域网内访问,怎样从公网也能访问本地MySQL数据库? 本文将介绍使用holer实现的具体步骤. 1. 准备工作 1.1 安装并启 ...
- [oracle] DBLINK +同义词,实现本地数据库访问另一台机器的数据库
起因:订单表原来在90库上,后各种原因移到了40库上,需访问40库上的订单表.采用DBLINK+同义词方法: -- 1 在90机器上用GPSV4登录PLSQL,创建DBLINK,从本地数据库,连接到远 ...
- Winform访问本地SQLServer数据库文件
Winform访问本地SQLServer数据库文件 1.项目中添加config配置,如下: <configuration> <connectionStrings> <ad ...
- node.js怎么配置访问本地的html文件?
node.js怎么配置访问本地的html文件? https://segmentfault.com/q/1010000000251204
- js访问数据库
一.js访问数据库的一般步骤: 1. 创建一个到数据库的 ADO 连接 conn = new ActiveXObject("ADODB.Connection"); 2. 打开数据库 ...
随机推荐
- 青少年CTF训练平台 — CRYPTO通关WP
A2-Crypto Caesar vxshyk{g9g9g099-hg33-4f60-90gk-ikff1f36953j} 凯撒解码 qsnctf{b9b9b099-cb33-4a60-90bf-df ...
- [转帖]SQL Server 中如何移动tempdb到新的位置
https://www.cnblogs.com/OpenCoder/p/10322904.html 操作步骤:1.检查tempdb的逻辑名字和它的存在位置.可以使用下面语句: SELECT name, ...
- [转帖]记druid 连接池没满,但超时问题 GetConnectionTimeoutException active 5, maxActive 100
记druid 连接池没满,但超时问题 GetConnectionTimeoutException active 5, maxActive 100 问题说明 线上服务突然出现报错,通过日志查找发现是因为 ...
- CPU算力提升与实际性能提升的关系
关于SPEC2006CPU和RedisBenchmark的理解 最近研究过硬件CPU的性能和Redis这样单线程重IO服务 突然想对比一下CPU算力提升占Redis性能提升的比率情况 性能很大程度由C ...
- 高性能Redis服务器注意事项
摘要 昨天简单理了理安装与配置相关的 但是很多比较重要的核心性能参数并没有进行学习与探讨 就基于昨天理解不深入的地方进行进一步的学习与了解 希望能够提高Redis-Server的性能. 第一部分: 规 ...
- /dev/null 先后顺序的问题
https://blog.csdn.net/x1131230123/article/details/114317752
- BAdI:INVOICE_UPDATE 导致MM Invoice Doc. Missing
Symptom:发票校验过程中,对应发票号生成,FI凭证也产生,但是对应RBKP,RSEG中无相应的发票. 原先这一问题SAP早给出过解释,参照note:1876234 Cause:在SD MM模块中 ...
- pytest-assume插件-多重校验
自动化接口测试我们通常会对一条case设置多条断言,这样就会出现一个问题,如果前面一 个校验不通过,那么后面的校验就不会走到,如下图,可以看到校验走到assert False就不往 下走了,这个时候p ...
- canvas实现添加水印
canvas添加水印思路 1.在画布上写上水印的名称(时间加上用户名) 2.canvas转化为base64,作为body的背景色 3.优化倾斜度和透明度 4.如果用户去除body的style水印消失 ...
- 常用排序方法——python写法【冒泡、快速排序、TOP-K问题】
1.冒泡排序 相信冒泡排序是很多小伙伴第一个知道的排序算法.它就是每趟排序冒出一个最大(最小)值,相邻两个元素比较,前一个比后一个大,则交换. def bubbleSort(arr): n = len ...