이진 파일을 가져와 웹 SQL 데이터베이스에 값을 삽입하는 간단한 페이지를 만들려고합니다. 내 모든 디버그 메시지를 제거하는 코드를 다시 제거했지만 본질적으로 코드가 실행될 나타납니다Web SQL 데이터베이스에 데이터를 삽입하는 데이 Javascript 코드에 어떤 문제가 있습니까?
function bin2dbfunc()
{
var result, n, aByte, byteStr;
var i=0;
var sql = new Array();
result = fr.result; //Input file
for (n = 0; n < result.length; ++n)
{
aByte = result.charCodeAt(n);
byteStr = aByte.toString(16);
if (byteStr.length < 2)
{
byteStr = "0" + byteStr;
} //Format to add leading 0 for hex values
//Looping through taking each byte read from file and adding to array
//sql[i] = aByte; //Value
sql[i] = byteStr; //String
//When completed one row of database run single SQL insert statement with array contents
if(i==15)
{
i=0; //Clear counter for next row
db.transaction(function (tx)
{
tx.executeSql('INSERT INTO binary_data VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', [sql[0], sql[1], sql[2], sql[3], sql[4], sql[5], sql[6], sql[7], sql[8], sql[9], sql[10], sql[11], sql[12], sql[13], sql[14], sql[15]]);
}, function (tx, err) {
document.getElementById("result3").innerHTML += 'ERROR '; //Display error message if SQL not run successfully
});
}
else
{
i++; //Otherwise increment counter
}
}
}
: 이 내가 데이터를 삽입하기 위해 사용하고있는 기능입니다. 6 행의 데이터가있는 2 진 파일을 사용하고 있지만 코드는 데이터의 마지막 행을 데이터베이스에 6 회 삽입합니다. 누구나 내가 잘못 가고있는 곳을 찾아 낼 수 있습니까?
범위 지정 문제와 같은 소리 - 비동기 함수 인'db.transaction()'입니까? –
변수'i'는'tx.executeSql'가 오류를 던지면 증가하지 않습니다. 그게 될 수 있을까요? – Bruno