思路:通过JScript中的 new ActiveXObject()方法来实现对对象的调用
// Demo 1 读取数据
function readFromDB()
{
var s="";
// 创建数据库对象
var objdbConn = new ActiveXObject("ADODB.Connection");
// DSN字符串
//var strdsn = "Driver={SQL Server};Server=127.0.0.1;Database=study;UID=sa;PWD="; // Sql Server 连接方式
//var strdsn="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Database1.accdb;Persist Security Info=False"; // Office 2007 Access
var strdsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Database1.mdb;Persist Security Info=False"; // Office 2003 Access
// 打开数据源
objdbConn.Open(strdsn);
// 执行SQL的数据库查询
var objrs = objdbConn.Execute("select * from db");
// 获取字段数目
var fdCount = objrs.Fields.Count - 1;
// 检查是否有记录
if (!objrs.EOF){
s="<table border=1><tr>";
// 显示数据库的字段名称
for (var i=0; i <= fdCount; i++)
{
s+="<td><b>" + objrs.Fields(i).Name + "</b></td>";
}
s+="</tr>";
// 显示数据库内容
while (!objrs.EOF){
s+="<tr>";
// 显示每笔记录的字段
for (i=0; i <= fdCount; i++)
{
s+="<td valign='top'>" + objrs.Fields(i).Value + "</td>";
}
s+="</tr>";
objrs.moveNext(); // 移到下一笔记录
}
s+="</table>";
}
else
//document.write("数据库内没有记录!<br/>");
s="数据库内没有记录!<br/>";
objrs.Close(); // 关闭记录集合
objdbConn.Close(); // 关闭数据库链接
document.getElementById("show").innerHTML=s;
}
// Demo 2 插入数据
function insertDB()
{
var objdbConn = new ActiveXObject("ADODB.Connection");
var strdsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Database1.mdb;Persist Security Info=False"; // Office 2003 Access
objdbConn.Open(strdsn);
var sql="insert into db(USERNAME,USERAGE) values ('AAAA',25)";
objdbConn.Execute(sql); // 更新
objdbConn.Close();
// show
readFromDB();
}
// Demo 3 插入数据2
function insertDB2()
{
// 需要注意一点,此处使用Recordset来更新数据,需要将Access文件的权限更改为everyone可以读写,
// 而使用 Connection对象的Execute方法则不需要
var objdbConn = new ActiveXObject("ADODB.Connection");
var strdsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Database1.mdb;Persist Security Info=False"; // Office 2003 Access
var sql="select * from db";
var rs= new ActiveXObject("ADODB.Recordset");
objdbConn.Open(strdsn);
rs.Open(sql,objdbConn,3,2);
// 在最后一行插入
rs.MoveLast();
rs.addnew();
rs("USERNAME")="BBB";
rs("USERAGE")=29;
rs.Update();
rs.Close();
objdbConn.Close();
// show
readFromDB();
}
// Demo 4 插入数据3
function insertDB3()
{
var objdbConn = new ActiveXObject("ADODB.Connection");
var strdsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Database1.mdb;Persist Security Info=False"; // Office 2003 Access
objdbConn.Open(strdsn);
var cmd=new ActiveXObject("ADODB.Command");
cmd.ActiveConnection=objdbConn;
cmd.CommandText="insert into db(USERNAME,USERAGE) values(:username,:userage)";
var para1=new ActiveXObject("ADODB.Parameter");
para1.Type=adBSTR;
para1.Direction=adParamInput;
para1.Name="username"
para1.Value="Ansy";
var para2=new ActiveXObject("ADODB.Parameter");
para2.Type=adInteger;
para2.Direction=adParamInput;
para2.Name="userage"
para2.Value=35;
cmd.Parameters.Append(para1);
cmd.Parameters.Append(para2);
cmd.Execute();
// show
readFromDB();
}
说明
1,Demo 4 需要ADO中的一些常量 点此下载 adojavas.inc
2,编程参考 ADO.CHM