Чтение и запись в базу данных доступа с использованием Javascript - PullRequest
12 голосов
/ 20 марта 2012

Сначала я хочу упомянуть, что я знаю, что при веб-взаимодействии с базами данных
всегда должно быть с языками на стороне сервера из-за соображений безопасности и того факта, что javascript
как есть не предлагает и совместимость сфайловая система Windows.

, в котором говорилось, что я сталкиваюсь с какой-то ситуацией, и я пытаюсь мыслить творчески.
Мне не разрешен доступ к серверным сценариям и SQL.

и мне нужно создать клиентское приложение для интрасети, которое сможет хранить данные с течением времени.

На данный момент я нашел 2 решения, но ни одно из них не имеет достаточной документации для правильного использования.

одна - это библиотека 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).

Спасибо, что прочитали это далеко!Я очень ценю вашу помощь!

Джейк

Ответы [ 2 ]

4 голосов
/ 20 марта 2012

Во-первых, убедитесь, что '/ \' и '\' (в строке подключения) - это просто опечатка в 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();
}

И, команда 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();
}  

Обратите внимание, я не проверял это (сейчас у меня нет Access), поэтому могут быть некоторые синтаксические ошибки ...

Надеюсь, что это работает и помогает.

0 голосов
/ 13 июня 2014
    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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...