首先我想提一下,我知道在与数据库的网络交互中应该是
由于安全原因以及javascript
这一事实,总是使用服务器端语言
因为它不提供和与Windows文件系统兼容。
说我正面临一种情况,我正在努力创造性思考 我不允许任何访问服务器端脚本和SQL。
我需要为Intranet创建一个基于客户端的应用程序,该应用程序能够随着时间的推移存储数据。
到目前为止,我找到了2个解决方案,但它们都没有足够的文档供我正确使用。
一个是名为ACCESSdb的javascript库,可在此处找到:ACCESSdb
遗憾的是我无法理解如何使用它来写入或读取数据库中的数据......
另一个是那3段代码:
添加记录:
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)。
感谢您阅读此内容!我非常感谢你的帮助!
杰克
答案 0 :(得分:4)
首先,确保'/ \'和'\'(在连接字符串中)只是SO中的拼写错误。
其次,这是删除命令的一个版本:
function DeleteRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoCmd = new ActiveXObject("ADODB.Command");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoCmd.ActiveConnection = adoConn;
adoCmd.CommandText = "Delete * From tblName Where FieldName = 'Quentin'";
adoCmd.Execute();
adoConn.Close();
}
并且,编辑命令(没有循环 - >更新所有[匹配]记录):
function EditRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoCmd = new ActiveXObject("ADODB.Command");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoCmd.ActiveConnection = adoConn;
adoCmd.CommandText = "Update tblName Set FieldName = 'New Value' Where FieldName = 'Quentin'";
adoCmd.Execute();
adoConn.Close();
}
请注意,我没有测试过这个(现在没有Access),所以可能有一些 语法错误...
希望它有效并有所帮助。
答案 1 :(得分:-1)
function loadDB() {
var connection = new ActiveXObject("ADODB.Connection");
var connectionstring = "Data Source=.;Initial Catalog=EmpDetail;Persist Security Info=True;User ID=sa;Password=Micr0s0ft;Provider=SQLOLEDB";
connection.Open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");
rs.Open("select * from emp", connection);
rs.MoveFirst();
var span = document.createElement("span");
span.style.color = "Blue";
span.innerText = " ID " + " Name " + " Salary";
document.body.appendChild(span);
while (!rs.eof){
var span = document.createElement("span");
span.style.color = "green";
span.innerText = "\n " + rs.fields(0) + " | " + rs.fields(1) + " | " + rs.fields(2);
document.body.appendChild(span);
rs.MoveNext();
}
rs.close();
connection.close();
}