1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <title>测试js访问数据库</title>
5 </head>
6 <script language="javascript" type = "text/javascript">
7 function testdb() {
8 // 创建数据库对象
9 var objdbConn = new ActiveXObject("ADODB.Connection");
10 var strdsn = "Driver={SQL Server}; Server=(local); Database=Test;UID=sa;PWD=123456";
11 // 打开数据源
12 objdbConn.Open(strdsn);
13 // 执行SQL的数据库查询
14 var objrs = objdbConn.Execute("SELECT * FROM Test");
15 // 获取字段数目
16 var fdCount = objrs.Fields.Count - 1;
17 // 检查是否有记录
18 if (!objrs.EOF) {
19 document.write("<table border=1><tr>");
20 // 显示数据库的字段名称
21 for (var i = 0; i <= fdCount; i++)
22 document.write("<td><b>" + objrs.Fields(i).Name + "</b></td>");
23 document.write("</tr>");
24 // 显示数据库内容
25 while (!objrs.EOF) {
26 document.write("<tr>");
27 // 显示每笔记录的字段
28 for (i = 0; i <= fdCount; i++)
29 document.write("<td valign=‘top‘>" + objrs.Fields(i).Value + "</td>");
30 document.write("</tr>");
31 objrs.moveNext(); // 移到下一笔记录
32 }
33 document.write("</table>");
34 }
35 else
36 document.write("数据库内没有记录!<br>");
37
38 objrs.Close(); // 关闭记录集合
39 objdbConn.Close(); // 关闭数据库链接
40 }
41 </script>
42
43 <body onload="InitDB()">
44 This is my page.
45 <br>
46 <input type="button" value="submit" onclick="testdb()" />
47 </body>
48 </html>
以上代码可以实现JS读取数据库并以列表方式显示出来。点击button即可看到结果。
执行的SQL语句是:SELECT * FROM Test。
不过可惜的是,似乎只有IE支持(至少IE8可以),chrome和firefox不支持,会报错:
Uncaught
ReferenceError: InitDB is not defined
Uncaught
ReferenceError: ActiveXObject is not defined
主要是ActiveXObject对象的问题。切记:ActiveX是微软的东西,故而这玩意儿只有IE才支持!
链接介绍 ActiveXObject,可以实现很多操作:文件操作、数据库操作、注册表操作。有点危险的行为。
http://www.jsann.com/post/activexobject_in_javascript.html
http://eyesinthesky.iteye.com/blog/1560033
时间: 2024-11-06 03:53:32