首先,我想提醒大家,在Web交互中与数据库的交互应该始终使用服务器端语言,这是因为安全原因和JavaScript本身并不支持Windows文件系统的兼容性。
话虽如此,我目前面临了一个棘手的情况,正在尝试创造性地思考。我被禁止访问任何服务器端脚本和SQL。
我需要为内部网络创建一个基于客户端的应用程序,能够随着时间的推移存储数据。
到目前为止,我已经找到了两种解决方案,但都没有足够的文档让我正确地使用它们。
其中一种是一个名为ACCESSdb的JavaScript库,可以在ACCESSdb找到,但我无法理解如何使用它来从数据库中读写数据……
另外一种是以下三段代码:
添加记录:
function AddRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='/\dbName.mdb'");
adoRS.Open("Select * From tblName", adoConn, 1, 3);
adoRS.AddNew;
adoRS.Fields("FieldName").value = "Quentin";
adoRS.Update;
adoRS.Close();
adoConn.Close();
}
删除记录:
function DeleteRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoRS.Open("Select * From tblName Where FieldName = 'Quentin'", adoConn, 1, 3);
adoRS.Delete;
adoRS.Delete;
adoRS.Close();
adoConn.Close();
}
编辑记录:
function EditRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoRS.Open("Select * From tblName Where FieldName = 'Quentin'", adoConn, 1, 3);
adoRS.Edit;
adoRS.Fields("FieldName").value = "New Name";
adoRS.Update;
adoRS.Close();
adoConn.Close();
}
其中只有添加新记录这个选项对我起作用了...
我还发现,要读取第一行中任何一个单元格的值,我只需要写:
alert(adoRS(cellNum));
但是我如何获取后面行中单元格的值呢?比如说(第3行,第5个单元格)。
非常感谢您一直阅读到这里!我将非常感激您的帮助!
Jake
adoRS.Delete
更改为adoRS.Delete()
,adoRS.Edit
更改为adoRS.Edit()
,并将adoRS.Update
更改为adoRS.Update()
。您需要使用一个ms-access数据库(它在网络共享或其他地方)吗? - PrusseadoRS.moveNext()
吗?http://msdn.microsoft.com/en-us/library/windows/desktop/ms677527(v=vs.85).aspx - Prusse