我有一個函數構建一個sql查詢,然後將其插入到客戶端的light sql中。縮短循環的動態SQL查詢
我認爲即時通訊使用許多for循環,我將如何使這個更短?
function insert(dataBase,table,row){
var j = 0;
var sqlQueryArray = [];
sqlQueryArray[j++] = 'INSERT INTO ';
sqlQueryArray[j++] = table
sqlQueryArray[j++] = ' ('
for (var i = row.length - 2; i >= 0; i--){
sqlQueryArray[j++] = row[i].id + ',';
};
sqlQueryArray[j++] = row[(row.length - 1)].id + '';
sqlQueryArray[j++] = ')'
var sqlQueryString = ' VALUES ';
for (var i = row.length - 2; i >= 0; i--){
sqlQueryArray[j++] = '?, ';
};
sqlQueryArray[j++] = '?';
sqlQueryArray[j++] = ');'
for (var i = 0; i < sqlQueryArray.length; i++){
sqlQueryString += sqlQueryArray[i];
}
var rowArray = []
for (var i = row.length - 1; i >= 0; i--){
rowArray[i] = row[i].val;
};
dataBase.openDatabase.transaction(
function (transaction) {
transaction.executeSql(sqlQueryString,
rowArray,
dataBase.nullSQLHandler, dataBase.QueryError);
}
);
}
您的權利我可能更多的查詢建立到服務器。它會使sql更加異步。 – 2010-11-30 03:04:25
噢...你正在發送查詢到服務器執行? – harto 2010-11-30 03:08:28
現在我在客戶端做這件事,但服務器是一個node.js服務器。所以我可能只是發送(表,行)並獲得一個值數組的字符串。 – 2010-11-30 03:10:48