[英]Error adding row to sqlite database using Appcelerator Titanium
[英]Export csv from SQLite using appcelerator
我是使用appcelerator来开发android应用程序的初学者。 我试图将存储在db(sqlite)应用中的所有数据导出到csv文件,但输出未显示所有数据。 我在代码中使用while和array。
btn_search.addEventListener('click',function(e) {
var db = Ti.Database.install('../products.sqlite','products');
var dbName = db.execute('SELECT * FROM products WHERE doc_num ="'+doc_num.value+'"');
// option 2
while (dbName.isValidRow()) {
var Barcode1 = dbName.fieldByName('doc_num');
var ItemName1 = dbName.fieldByName('barcode');
var UOM1 = dbName.fieldByName('product_name');
var TOUM1 = dbName.fieldByName('rack_loc');
var TQTY1 = dbName.fieldByName('oum');
var TRACK1 = dbName.fieldByName('qty');
dbName.next();
// create csv
var dbName1 = dbName;
dbName1 = [ dbName.fieldByName('doc_num') , dbName.fieldByName('barcode') , dbName.fieldByName('product_name') , dbName.fieldByName('rack_loc') , dbName.fieldByName('oum') , dbName.fieldByName('qty')];
for(var i=0; i<dbName1.length !==0; i++)
{
Ti.API.info(dbName1[i]);
alert('you have "'+dbName1[i]+'" in your side');
}
var outputFile = Titanium.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, 'File_Product.csv');
outputFile.write(dbName1);
//alert("Output file = "+ op);
}
});
输出仅显示一个数据,即db中的最新数据。 它应该有3个数据。 但是只显示1个数据:DISK1 | 9789678606387 | 书1 | A100 | PCS | 12
可以帮助/建议我解决此问题。 谢谢
使用以下代码更新while循环
var main_array = [];
while (dbName.isValidRow()) {
var Barcode1 = dbName.fieldByName('doc_num');
var ItemName1 = dbName.fieldByName('barcode');
var UOM1 = dbName.fieldByName('product_name');
var TOUM1 = dbName.fieldByName('rack_loc');
var TQTY1 = dbName.fieldByName('oum');
var TRACK1 = dbName.fieldByName('qty');
var single_item_array = [dbName.fieldByName('doc_num'),dbName.fieldByName('barcode'), dbName.fieldByName('product_name'), dbName.fieldByName('rack_loc'), dbName.fieldByName('oum'), dbName.fieldByName('qty')];
for (var i = 0; i < single_item_array.length !== 0; i++) {
Ti.API.info(single_item_array[i]);
Ti.API.info("you have > " + single_item_array[i] + " in your side");
}
main_array.push(single_item_array);
dbName.next();
}
if (main_array.length > 0) {
var outputFile = Titanium.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, 'File_Product.csv');
outputFile.write(main_array);
}
上面的代码解决了您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.