用 IE 调用 RDS 实现远程数据库存取

原创 2003年12月02日 10:13:00

     互连网上的数据库应用大多采用 Web 后台数据库,用 ASP、PHP、JSP 等嵌入式脚本语言编程进行数据的后台存取。实际上,应用微软的 RDS(Remote Data Service 远程数据服务)同样可以进行 Web 服务器端的数据库访问,使用起来更显简单。而这一技术一般的报刊杂志介绍的比较少。
    RDS 是微软随 IE4.01 以上浏览器发布的一个 ActiveX 组件,负责网络系统中远端数据库的访问。与 ASP 等数据库访问组件不同的是,RDS 不是工作在 Web 服务器端,而是调用浏览器本地的组件功能,实现真正的远程数据存取,所以在访问服务器端的数据库时,必须提供服务器的 IP 地址和数据库的绝对路径,最后通过 SQL 查询语句,将数据取回到浏览器端显示出来。
    更让人欣喜的是,浏览器端数据的显示,不用像 ASP 脚本那样通过编程控制数据的版面编排,而是通过将 RDS 作为数据源与网页中普通的表格进行“绑定”,通过十分简单的脚本语言控制,数据就会在表格中显示出来。(而网页中的表格,我们一般的用法是用它来控制页面排版、布局。)
    和一般的 ActiveX 组件的使用一样,RDS 组件在网页中用 <object id="" classid=""></object> 标签进行引用。本例中我们的 id 设为 RDS1,classid 为 BD96C556-65A3-11D0-983A-00C04FC29E33(在注册表中应当能查找到)。用来显示数据的 HTML 表格 id 设为 Cheng_ji。把 RDS1 作为数据源与表格 Cheng_ji 绑定在一起的语法格式为:
    <table id="Cheng_ji" DataSrc="#RDS1" DataPagesize="6">
    还可以分页显示数据,其中 DataPagesize="6" 表示一页表格显示 6 条记录。
    在表格中显示字段变量数据的语法为 <DIV DataFld="字段名">。
    本例中,按钮“打开数据库”调用 VB 脚本 OpenDB() 过程,把 IP 地址、数据库路径、SQL 查询语句等参数传递给 RDS1,然后调用 RDS1 的 refresh 方法取回数据在表格 Cheng_ji 中显示出来。表格下面的四个按钮调用翻页函数可以前后查看数据。设置分页功能对大量的数据可以进行有效的缓冲,还可以平衡网络的数据流量。
    本例实现了一个学生成绩单的查询功能,Access 数据库 test_db.mdb 中成绩表 cheng_ji 的表结构为:
    xing_ming 文本 '姓名
    xue_hao 文本 '学号
    yu_wen 数字 '语文
    shu_xue 数字 '数学
    ying_yu 数字 '英语
    mei_shu 数字 '美术
    ji_suan_ji 数字 '计算机
    HTML 代码如下,查询结果见图。本例在 Windows98 第一版下运行通过。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<title>成绩公布</title>
</head>
<body bgcolor="#FFFFFF">
<center><font color=red size=5>成绩公布</font></center><hr>
<Form name="form1">
<table border="0" align="center">
<tr>
<td align="right">服务器 IP 地址:</td>
<td>
<!-定义服务器 IP 地址:-->
<input type="text" size="50" name="Server" value="http://192.168.0.100">
</td>
</tr>
<tr>
<td align="right">数据库路径:</td>
<td>
<!-定义服务器端数据库路径:-->
<input type="text" size="50" name="Dbq" value="c:/tmp/test_db.mdb">
</td>
</tr>
<tr>
<td align="right">SQL 查询语句:</td>
<td>
<!-定义SQL 查询语句:-->
<input type="text" size="50" name="SQL" value="Select * From cheng_ji">
</td>
</tr>
<tr>
<td align="center" colspan="2"><input type="button" value="打开数据库" onclick="OpenDB()"></td>
</tr>
</form>
</table>
<hr width="80%">
<table align="center" width= "400" border="1" cellspacing=0
id="Cheng_ji" DataSrc="#RDS1" DataPagesize="6">
<THEAD>
<tr align="center">
<td bgcolor="#00FFFF">姓名</td>
<td bgcolor="#00FFFF">学号</td>
<td bgcolor="#00FFFF">语文</td>
<td bgcolor="#00FFFF">数学</td>
<td bgcolor="#00FFFF">英语</td>
<td bgcolor="#00FFFF">美术</td>
<td bgcolor="#00FFFF">计算机</td>
</tr>
</THEAD>
<TBODY>
<tr>
<td><DIV DataFld="xing_ming"></DIV></td>
<td align="center"><DIV DataFld="xue_hao"></DIV></td>
<td align="right"><DIV DataFld="yu_wen"></DIV></td>
<td align="right"><DIV DataFld="shu_xue"></DIV></td>
<td align="right"><DIV DataFld="ying_yu"></DIV></td>
<td align="right"><DIV DataFld="mei_shu"></DIV></td>
<td align="right"><DIV DataFld="ji_suan_ji"></DIV></td>
</tr>
</TBODY>
</table>
<br>
<center>
<input type="button" value="第一页" onclick="Cheng_ji.firstPage()">
<input type="button" value="<<上一页" onclick="Cheng_ji.previousPage()">
<input type="button" value="下一页>>" onclick="Cheng_ji.nextPage()">
<input type="button" value="最后一页" onclick="Cheng_ji.lastPage()">
</center>
<hr>
<object id="RDS1" classid="ClsID:BD96C556-65A3-11D0-983A-00C04FC29E33" align="baseline">
</object>
<script language="VBScript">
Sub OpenDB()
RDS1.Server = form1.Server.Value
RDS1.Connect = "driver={Microsoft Access Driver (*.mdb)}" & ";dbq=" & form1.Dbq.Value
RDS1.SQL = form1.SQL.Value
RDS1.Refresh
End Sub
</script>
</body>
</html>


 张庆 zhangking@263.net
http://soft.why100000.com

SQLyog远程连接MySQL数据库

今天公司服务器安装了Nginx服务器,因为原来有Apache服务器,本来可以在远程浏览器直接访问MySQL数据库,今天访问的时候显示的是找不到Nginx服务器,所以我就换了个方式用SQLyog客户端来...
  • qq_28832135
  • qq_28832135
  • 2016年12月28日 21:40
  • 4537

关于从浏览器到数据库之间的网络连接

浏览器 DNS Web Server 数据库
  • daishuguang4461
  • daishuguang4461
  • 2016年05月25日 16:06
  • 263

阿里云 RDS SDK python3支持

最近的一个项目需要操作阿里云的RDS,项目使用python3,让人惊讶的是官方的SDK竟然只支持python2 在阿里云现有SDK上改了改,文件的修改只涉及aliyun/api/base.py,详见...
  • dongfuye
  • dongfuye
  • 2015年07月04日 11:23
  • 1763

阿里云RDS调用存储过程报错ERR1449

数据库使用的是阿里云RDSmysql5.6 应用程序CALL生产库的存储过程,navicat报错ERR1449 但是在测试库使用时并没有问题。 以为是权限问题,检查后发现和测...
  • mayifan0
  • mayifan0
  • 2017年04月13日 10:54
  • 606

获取IE缓冲区中的验证图片

好吧,因为项目需要!在开发BHO的时候,xuy
  • magedhenary
  • magedhenary
  • 2014年11月10日 15:19
  • 630

关于阿里云Rds接口调用的记录

最近在使用阿里云open_Api的Rds实现database的创建和对创建的database的授权,在使用过程中存在一些使用的问题,在此记录一下。 注:这里使用的语言是php 阿里云提...
  • u011209996
  • u011209996
  • 2016年03月29日 22:11
  • 1846

阿里云RDS文档概述——概述与请求方式

这些内容在RDS的官方文档中都有,这一系列的博客只是把一些重要的内容抽取并整理。...
  • hyzhou33550336
  • hyzhou33550336
  • 2014年11月30日 10:28
  • 2899

我的服务器开发之路-云数据库RDS版使用

云数据库RDS版使用
  • w_w_see
  • w_w_see
  • 2016年11月21日 21:41
  • 450

利用WebService技术实现远程数据库存取

  • zgqtxwd
  • zgqtxwd
  • 2008年05月01日 03:17
  • 134

python获取RDS信息并遍历结果

阿里官方API:https://help.aliyun.com/document_detail/26226.html?spm=5176.product26090.6.819.CyyA4l 脚本如下:...
  • pengShuai007
  • pengShuai007
  • 2017年11月10日 10:57
  • 208
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用 IE 调用 RDS 实现远程数据库存取
举报原因:
原因补充:

(最多只允许输入30个字)