2013-05-07 2 views
1

Я использую JavaScript и HTA для чтения данных в базе данных доступа (.mdb) по локальной сети, но с небольшой проблемой. Мой код JavaScript выглядит так:Чтение и форматирование Доступ к данным

function miseryBusiness() { 
    var box = document.getElementById("lyrics"); 
    box.innerHTML = ""; 

    var db = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='paramore.mdb'"; 
    var adoConn = new ActiveXObject("ADODB.Connection"); 
    var adoRS = new ActiveXObject("ADODB.Recordset"); 
    adoConn.Open(db); 
    adoRS.Open("SELECT * from 2007_RIOT WHERE track=4", adoConn, 1, 3); 

    var lyrics = adoRS.Fields("lyrics").value; 
    box.innerText = lyrics; 

    adoRS.Close(); 
    adoConn.Close(); 
} 

У меня есть div на странице с id = "lyrics". Функция получает указанное значение ячейки и изменяет внутренний текст div на это значение.

Что я хочу сделать, это использовать innerHTML вместо innerText. И если я использую внутренний HTML, я получаю значение ячейки как одну строку. Я хочу добавить разрывы строк в конец каждой строки. Также привязка к началу текста.

Если я получаю текст из текстового файла, который я хотел бы использовать

while(!lyrics.AtEndOfStream) { 
    box.innerHTML += '<a id="miseryBusiness">' + lyrics.ReadLine() + '<br/>'; 
} 

, но это не работает с базой данных доступа. Или я не мог заставить его работать. Есть идеи?

HTA и .mdb файл Я использую: link1link2

ответ

1

Если текст в поле Memo с твердыми разрывов строк, то линия терминатора почти наверняка <cr><lf>, поэтому попробуйте следующее:

box.innerHTML = '<a id="miseryBusiness">' + lyrics.replace(/\r\n/g, '<br/>'); 
+0

Хм. Не связано с моей проблемой, но спасибо =) – akinuri

+0

@akinuri Извините, я думаю, я неправильно понял вашу проблему. Вы можете получить текст из файла .mdb, но форматирование вам не по душе? –

+0

Точно. Я могу получить текст и изменить содержимое div с помощью innerText, но я хочу использовать innerHTML для добавления привязки и разрыва строки в текст. – akinuri