Подтвердить что ты не робот

Чтение и запись в базу данных доступа с использованием 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).

Спасибо, что прочитали это! Буду признателен за вашу помощь!

Джейк

4b9b3361

Ответ 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();
}