Posts Tagged ‘Flex’

Classe para utilização de SQL em AIR (Flash, Flex)

0saves

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 :D

Em breve colocarei aqui este tutorial em video.