Usando banco de dados local com Adobe AIR

Muitas vezes necessitamos que nosso sistema possa armazenar dados localmente, sem a necessidade de um banco de dados robusto como um MySQL ou um SQL Server, ou mesmo que os dados possam ser armazenados localmente para uma posterior sincronização com um banco de dados remoto. O Adobe AIR oferece a possibilidade de se trabalhar com banco de dados localmente, seu banco é baseado no banco de dados SQLite, o mais usado para esse tipo de necessidade por ser bem rapido e fácil de se trabalhar. Foi adicionado suporte a transação no Adobe AIR 2.0.
Vamos a um exemplo simples, comecemos com a classe SQLConnection, ela sera responsável pela conexão com nosso banco local, por ela também é que definimos se o banco de dados será usado apenas em memoria ou se será criado um arquivo local(extensão .db).
[ACTIONSCRIPT3]
conn = new SQLConnection();
try
{
conn.open(dbFile);//conn.open(null) passe null para o banco ser criado somente em memoria
}
catch(err:Error)
{
trace(ObjectUtil.toString(err));
return;
}
[/ACTIONSCRIPT3]
Nesse caso, estou criando um arquivo local para o banco de dados. dbFile é uma instancia da classe File:
[ACTIONSCRIPT3]
dbFile = File.applicationStorageDirectory.resolvePath(“dbFile.db”);
[/ACTIONSCRIPT3]
Tendo nosso banco criado, agora criaremos nossa tabela para armazenagem dos dados. Usaremos a classe SQLStatement.
[ACTIONSCRIPT3]
createStmt = new SQLStatement();
createStmt.sqlConnection = conn;
[/ACTIONSCRIPT3]
Passaremos a SQL por String para criar a tabela para em seguida ser executada pelo AIR:
[ACTIONSCRIPT3]
var sql:String = “”;
sql += “CREATE TABLE IF NOT EXISTS contato (“;
sql += ” id INTEGER PRIMARY KEY AUTOINCREMENT,”;
sql += ” nome TEXT,”;
sql += ” email TEXT”;
sql += “)”;
createStmt.text = sql;
try
{
createStmt.execute();
}
catch(error:SQLError)
{
trace(“CREATE TABLE error:”, error);
trace(“error.message:”, error.message);
trace(“error.details:”, error.details);
return void;
}
[/ACTIONSCRIPT3]
Temos nosso banco e tabelas criadas, vamos criar um formulario para inserir alguns dados no banco:
[ACTIONSCRIPT3]
insertStmt = new SQLStatement();
insertStmt.sqlConnection = conn;
var sql:String = “”;
sql += “INSERT INTO contatos (nome, email) “;
sql += “VALUES (‘”+txtNome.text+”‘, ‘”+txtEmail.text+”‘)”;
insertStmt.text = sql;

try
{
insertStmt.execute();
}
catch (error:SQLError)
{
trace(“INSERT error:”, error);
trace(“error.message:”, error.message);
trace(“error.details:”, error.details);
return void;
}
[/ACTIONSCRIPT3]
Agora basta criar o método para executará o select
[ACTIONSCRIPT3]
selectStmt = new SQLStatement();
selectStmt.sqlConnection = conn;
var sql:String = “SELECT id, nome, email FROM contatos”;
selectStmt.text = sql;

try
{
selectStmt.execute();
}
catch (error:SQLError)
{
trace(“SELECT error:”, error);
trace(“error.message:”, error.message);
trace(“error.details:”, error.details);
return;
}

var result:SQLResult = selectStmt.getResult();
dg.dataProvider = result.data;
[/ACTIONSCRIPT3]
Segue o codigo completo:
[MXML]





































[/MXML]

Mais:
more:
Quick Start: Working asynchronously with a local SQL database (Flex)
Quick Start: Working asynchronously with a local SQL database (Flash)
Quick Start: Working asynchronously with a local SQL database (HTML)
Quick Start: Working synchronously with a local SQL database (Flex)
Quick Start: Working synchronously with a local SQL database (Flash)
Quick Start: Working synchronously with a local SQL database (HTML)

ActionScript 3.0, Adobe AIR, Flex , ,