使用SQLite 需要以下三個內建類別完成:
- SQLConnection - 管理本機 SQL 資料庫檔案 (本機資料庫) 的建立與連線
- SQLStatement - 執行 SQL 陳述式物件
- SQLEvent - 傳送SQL 事件的物件
|
|
以下是使用SQLite 的查詢步驟:
- 建立資料庫連線:
var file:File = File.applicationStorageDirectory.resolvePath("user.db"); var conn:SQLConnection = new SQLConnection(); conn.addEventListener(SQLEvent.OPEN, openHandler); conn.open(file);
- 連線成功後,
執行 SQL 陳述式:
private function openHandler(event:SQLEvent):void{ var statement:SQLStatement = new SQLStatement(); statement.sqlConnection = conn; statement.text = "SELECT name, birthday FROM tbUser"; statement.addEventListener(SQLEvent.RESULT, resultHandler); statement.execute(); }
- 讀取數據:
private function resultHandler(event:SQLEvent):void{ var statement:SQLStatement = event.target as SQLStatement; var data:Array = statement.getResult().data; for(var i:int=0; i<data.length; i++) trace("name:" + data[i].name + ", birthday:" + data[i].birthday); }
除了作本機資料庫, 我們可以製作一些機制, 定時同步(Synchronize) 伺服器的資料庫數據, 使本機內容更新. 作者製作一個簡單範例, 實作CREATE TABLE, INSERT INTO 和SELECT 等SQL 陳述式, 幫助了解SQLite 在Adobe AIR 的運作方式.
大家可以 [下載] 範例試試看.
參考資料: http://www.slideshare.net/peterelst/introduction-to-sqlite-in-adobe-air-1627545
若製作過程, 想了解"user.db" 的內容與結構, 我們可以使用免費的SQLite Expert Personal 來解讀SQLite 檔案.
在Windows 運行Flash Builder 會在 "C:\Users\USER_NAME\AppData\Roaming\SQLite.test01.debug\Local Store\" 找到"user.db" 這個檔案.
8 則留言:
請問如何將輸入的資料做刪除的動作
十分簡單, 與select, insert, update 等動作很相近:
DELETE FROM tbUser WHERE name="Tom"
有興趣SQL 可參與以下連結:
http://www.w3schools.com/sql/sql_delete.asp
請問如何存取圖片
簡單載入圖片範例, 可以試試下載參考:
http://flash-adobe.blogspot.hk/2012/03/image-video-html-swf-text.html
請問用桌上型電腦 flash cs6製作 air for android時 user.db 應置於何處才會讀得到。完成檔(運用到sqlite)發布至手機時有特別的設定嗎?
1. 在AIR for Android Settings -> Included files 加入user.db 檔案.
2. 利用copyTo 把user.db 檔案複製至applicationStorageDirectory 內.
複製方法請參考以下:
function copyFile(folderName:String, indexName:String, once:Boolean = true):String {
var source:File = File.applicationDirectory.resolvePath(folderName);
var destination:File = File.applicationStorageDirectory;
if (!destination.resolvePath(indexName).exists || !once)
source.copyTo(destination, true);
return "file://" + destination.resolvePath(indexName).nativePath;
}
3. 讀取applicationStorageDirectory 被複製的user.db 檔案.
var file:File = File.applicationStorageDirectory.resolvePath("user.db");
## 透過Flash 的Included files 內嵌檔案, 會被存放於applicationDirectory 內, 但其內容不能新增, 更改或刪除. 我們需要複製一份至applicationStorageDirectory 內, 才給程序調用.
請問範例怎麼打開??
是透過Adobe Flash Builder 打開.
張貼留言