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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | /* ################################################ # # # 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:
1 2 3 4 | // 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:
1 | DB.Inicia("teste"); // sendo que teste é o nome do banco |
3 – Se as tabelas não existirem, crie elas:
1 | 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:
1 | DB.executeQuery("INSERT INTO testando (id,nome,sobrenome) VALUES (null,'ARMANDO LEOPOLDO','KELLER')"); |
4.2 – Exemplo de como buscar dados:
1 2 3 4 5 6 7 8 9 | 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.