[TITANIUM]遠端更新sqlite資料庫

LINEで送る
[`evernote` not found]

sqlite雖然不是一個很安全的系統,但是如果只是拿來做記錄、查詢可以說是非常的方便!只是在做資料更新時就比較困難(還加上APPLE STORE那超級久的審查時間)。如果只是小筆資料的變更,我們當然會希望可以讓我們在遠端做資料庫內容的管理!

把原本的字串處理變成sqlite資料庫後,能做的查詢也就變更多了!

原來想說既然sqlite只用一個檔案就可以管理,就從遠端下載新版本覆蓋就好了!應該不是一件很困難的事…..
卻原來也不是這麼理所當然的樣子~

exports.updateDb = function() {
	var xhr = Ti.Network.createHTTPClient(); 
	xhr.timeout = 1000000;
	xhr.onerror = function(e2){
		Ti.UI.createAlertDialog({title:'Error', message:L('update fail')}).show();
		Ti.App.fireEvent("updateDbError");
	};
	xhr.setTimeout(20000);
	xhr.onload = function() {
	    var db = Ti.Database.open(DATABASE_NAME);
	    db.remove();
	    db.close();
 
	    var f = Ti.Filesystem.getFile(Titanium.Filesystem.applicationDirectory+'../tmp/', 'justdata.sqlite'); 
	    f.write(this.responseData);
	    f.remoteBackup = false;
	    var db = Ti.Database.install(f.nativePath, DATABASE_NAME); 
 
	    db.close();
	    Ti.App.fireEvent("updateDbSuccess");
	}; 
	xhr.open('GET', 'http://xxx.xxx.xxx.xx/justdata.sqlite'); 
	xhr.send(null);
};

主要是ios4跟ios5的路徑讀取方式不同,ios5還會自動做備份。所以在這中間又多花了一點時間@@
還是要來想辦法把iphone模擬器升級到ios5才好阿!!

2 則迴響於《[TITANIUM]遠端更新sqlite資料庫

  1. 您好~參考了您的講法,其實我最近一直在找方法可以做到跟您講的類似的功能,遠端更新sqlite,但是不知從哪下手,可否有相關文獻可以參考呢

    • 我之前也找了很久,都沒有發現適合的!所以才自己動手寫@@
      依照我的方式讀取sqlite檔案,應該就可以做到遠端更新了!(實際運用中~)

回應已關閉。