Чтение и запись в базу данных доступа с использованием Javascript
Сначала я хочу упомянуть, что я знаю, что в веб-взаимодействии с базами данных следует
всегда быть на серверах на стороне сервера из-за соображений безопасности и за то, что javascript
как это не предлагает и совместимость с файловой системой Windows.
который сказал, что я столкнулся с ситуацией, и я пытаюсь мыслить творчески.
Мне не разрешен доступ к серверным скриптам и SQL.
и мне нужно создать клиентское приложение для интрасети, которое сможет хранить данные как время.
Я нашел 2 решения до сих пор, но ни один из них не имеет достаточной документации для правильного использования.
one - это библиотека javascript под названием ACCESSdb, которую можно найти здесь: 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).
Спасибо, что прочитали это! Буду признателен за вашу помощь!
Джейк
Ответы
Ответ 1
Во-первых, убедитесь, что '/\' и '\' (в строке соединения) - это просто опечатка в SO.
Во-вторых, вот версия команды Delete:
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();
}
И, команда Edit (без цикла → обновляет все [соответствующие] записи):
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();
}
Обратите внимание, что я не тестировал это (сейчас у меня нет доступа), поэтому могут быть некоторые
синтаксические ошибки...
Надеюсь, он работает и помогает.
Ответ 2
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();
}