5 Abril, 2008
Classe para utilização de SQL em AIR (Flash, Flex)
Posted by alksk8 under AIR, AS 3.0, Flash geral, Flex | Etiquetas: flash, AIR, Flex, AS 3, SQLite, DB, Database, SQL |Neste tutorial mostrarei como utilizar uma classe que eu criei para facilitar o uso de SQL em AIR (tanto para flash quanto para flex)
A classe é esta:
/*
################################################
# #
# Classe : DB (com.alkeller.air.DB) #
# Autor : Armando Leopoldo Keller #
# Versão : 1.0 #
# Contato : alksk8@hotmail.com #
# Blog : http://alkeller.wordpress.com #
# Documentaçao em breve no blog #
# #
################################################
——- Deixe os creditos na classe ———-
*/
package com.alkeller.air
{
// Imports
import flash.data.SQLResult;
import flash.filesystem.File;
import flash.data.SQLStatement;
import flash.data.SQLConnection;
import flash.events.SQLEvent;
import flash.events.SQLErrorEvent;
import flash.errors.SQLError;// Classe;
public class DB
{
// Variaveis utilizadas;
private static var conectado:Boolean = false;
private static var dbFile:File
private static var conn:SQLConnection
private static var _sqlStatement:SQLStatement;
private static var resultado:SQLResult;
private static var retornoString:String;
private static var retornoObjeto:Object;// Funçao Inicia :utilizada para conectar com o banco de dados;
public static function Inicia(_nome:String):String
{
conn = new SQLConnection();
dbFile = File.applicationStorageDirectory.resolvePath(String(_nome+”.db”));
try
{
conn.open(dbFile);
conectado = true;
trace(”Conectado com “+_nome+”.db”);
retornoString = “Conectado com “+_nome+”.db”;
}
catch (error:SQLError) {
conectado = false;
retornoString = “Falha ao conectar: “+error.message+”\nDetalhes: “+error.details;
}
return retornoString;
}
// Funçao executeQuery: Utilizada para executar um comando SQL(verificar quais são aceitos pelo AIR);
// Retorno: SQLResult –> http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/data/SQLResult.html
// ou String de erro;
public static function executeQuery(_sql:String):Object
{
if(conectado == true)
{
_sqlStatement = new SQLStatement();
_sqlStatement.sqlConnection = conn;
_sqlStatement.text = _sql;
try
{
_sqlStatement.execute();
resultado = _sqlStatement.getResult();
retornoObjeto = resultado;
}
catch (error:SQLError)
{
retornoString = “Falha ao executar(”+_sql+”): “+error.message+”\nDetalhes: “+error.details;
}
return retornoObjeto?retornoObjeto:retornoString;
}
else
{
return “Não conectado!”;
}
}
}
}
Classe para download: http://paginas.terra.com.br/lazer/alksk8/DB.as
Como utilizar:
1 - Importe a classe:
// OBS: Aqui é bom verificar se a classe esta no local certo com/alkeller/air/
import com.alkeller.air.*;
// ou
import com.alkeller.air.DB;
2 - Inicie o banco:
DB.Inicia(”teste”); // sendo que teste é o nome do banco
3 - Se as tabelas não existirem, crie elas:
DB.executeQuery(”CREATE TABLE IF NOT EXISTS testando (id INTEGER PRIMARY KEY AUTOINCREMENT,nome TEXT,sobrenome TEXT)”);
4.1 - Execute as Querys que desejar, por exemplo inserir alguns dados:
DB.executeQuery(”INSERT INTO testando (id,nome,sobrenome) VALUES (null,’ARMANDO LEOPOLDO’,'KELLER’)”);
4.2 - Exemplo de como buscar dados:
var obj:Object = DB.executeQuery(”SELECT * FROM testando”).data;
for(var i:uint=0; i < obj.length; i++)
{
trace(”linha: “+i)
for(var j:Object in obj[i])
{
trace(j+”: “+obj[i][j])
}
}
Aproveitem a classe
Em breve colocarei aqui este tutorial em video.
7 Abril, 2008 at 12:08 pm
Bom trabalho, mas eu acho legal usar o protótipo de ORM em AIR feito pelo Christophe
http://coenraets.org/blog/2007/10/annotating-actionscript-classes-with-custom-metadata-simple-orm-framework-for-air/
Esse simples exemplo pode ser aproveitado para criar seu proprio ORM e otimizar de acordo com a sua necessidade.
Abraços.
7 Abril, 2008 at 3:05 pm
Classe legal mas….usar esse tipo de banco interno pra fazer sistema é a maior besteira que se pode fazer.
Lembrando que esse banco do AIR pode corromper e também não consigo trabalhar com grandes quantidades de registro.
Assim sendo, só usa esse tipo de banco para poucos registros e consultas simples e nada a mais.
Flw guri…
7 Abril, 2008 at 3:12 pm
Jonathan, o banco do AIR é o SQLite , que é muito bom por sinal, e pode fazer backup e tal, site do SQLite : http://www.sqlite.org/
8 Abril, 2008 at 1:32 pm
Finalmente encontrei alguem que faz algo prático e funcional. Melhor… em português, quer mais… impossivél, estou dias procurando e não encontrava, sorte tentar procurar pelo flash e não pelo flex.
Olha, PARABÈNS… show de bola, ainda não testei, mas vou testar daqui a pouco. Eu só espero que um dia você conhece a colocar tutoriais.. para iniciantes principalmente.
Um grande abraço.
Maykson
1 Maio, 2008 at 11:14 am
alkeller, o banco de SQLite ja vem imbutido no sdk do air ou preciso instalar ele manualmente?
1 Maio, 2008 at 11:26 am
Ja vem junto.
6 Maio, 2008 at 8:24 am
[...] AIR para consultar SQL com Flash e Flex; [...]