fabiophx, tentei usar esta parte que você me mandou em meu código, mas sem sucesso, principalmente na parte do id que você falou, nem compilava, desculpe ser um novato chato, mas é que não estou conseguindo resolver sozinho, o text do combobox é para inserir os dados no banco, o código ficou assim:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:com="com.*" xmlns="*" width="388" height="475"
creationComplete="init()"
label="{_ferramenta.ferramenta_id > 0 ? _ferramenta.tipo + ' ' + _ferramenta.descricao : 'Nova Ferramenta'}">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
import Eventos.FerramentaEvent;
import mx.collections.ArrayCollection;
import Eventos.TFerramentaEvent;
import Formularios.TFerramentaForm;
[Bindable] private var tFerramentas:ArrayCollection;
// Para criar a conexão com o banco de dados
private function openDatabase():void
{
var file:File = File.applicationDirectory.resolvePath("bd/Banco.db");
sqlConnection = new SQLConnection();
sqlConnection.open(file);
achaTFerramenta();
}
// Para selecionar a tabela do banco de dados desejada
private function achaTFerramenta():void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "SELECT DISTINCT tferramenta FROM TFERRAMENTA";
stmt.execute();
tFerramentas = new ArrayCollection(stmt.getResult().data);
callLater(select);
}
[Bindable] public var _ferramenta:Object;
public var sqlConnection:SQLConnection;
private var validators:Array;
private function init():void
{
validators = [tipoValidator];
openDatabase();// colocado para abrir o banco de outro lugar
}
public function set ferramenta(ferramenta:Object):void
{
_ferramenta = ferramenta;
}
public function get ferramenta():Object
{
return _ferramenta;
}
private function save():void
{
if (Validator.validateAll(validators).length>0)
{
return;
}
_ferramenta.tipo = tipo.text;
_ferramenta.descricao = descricao.text;
_ferramenta.data_aquisicao = dataAquisicao.selectedDate;
if (_ferramenta.ferramenta_id > 0)
{
update();
}
else
{
insert();
}
}
private function insert():void
{
try
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text =
"INSERT INTO ferramenta (tipo, descricao, data_aquisicao) " +
"VALUES (:tipo, :descricao, :dataAquisicao)";
stmt.parameters[":tipo"] = _ferramenta.tipo;
stmt.parameters[":descricao"] = _ferramenta.descricao;
stmt.parameters[":dataAquisicao"] = _ferramenta.data_aquisicao;
stmt.execute();
_ferramenta.ferramenta_id = stmt.getResult().lastInsertRowID;
label = _ferramenta.tipo + ' ' + _ferramenta.descricao;
dispatchEvent(new FerramentaEvent(FerramentaEvent.CREATE, _ferramenta, true));
}
catch (error:SQLError)
{
Alert.show(error.details, "Erro");
}
showAlert();
}
private function update():void
{
try
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text =
"UPDATE ferramenta set " +
"tipo=:tipo, " +
"descricao=:descricao, " +
"WHERE ferramenta_id=:ferramentaId";
stmt.parameters[":tipo"] = _ferramenta.tipo;
stmt.parameters[":descricao"] = _ferramenta.descricao;
stmt.parameters[":dataAquisicao"] = _ferramenta.data_aquisicao;
stmt.parameters[":ferramentaId"] = _ferramenta.ferramenta_id;
stmt.execute();
label = _ferramenta.tipo + ' ' + _ferramenta.descricao;
dispatchEvent(new FerramentaEvent(FerramentaEvent.UPDATE, _ferramenta, true));
}
catch (error:SQLError)
{
Alert.show(error.details, "Error");
}
showAlert();
}
private function deleteItem():void
{
try
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "DELETE FROM ferramenta WHERE ferramenta_id = :ferramentaId";
stmt.parameters[":ferramentaId"] = _ferramenta.ferramenta_id;
stmt.execute();
dispatchEvent(new FerramentaEvent(FerramentaEvent.DELETE, _ferramenta, true));
}
catch (error:SQLError)
{
Alert.show(error.details, "Erro");
}
}
//para notificação quando apertar o botão salvar
import com.notifications.Notification;
[Embed(source = '/assets/BD.png')]
private var notificationIcon:Class;
private function showAlert() :void
{
Notification.show( "Dados salvos com sucesso no banco de dados!", "Dados salvos!", 4000, 'bottomright', notificationIcon, true );
}
//para notificação quando apertar o botão deletar
import com.notifications.Notification;
[Embed(source = '/assets/BDD.png')]
private var notificationIconDeletar:Class;
private function showAlertDeletar() :void
{
Notification.show( "Dados excluídos com sucesso do banco de dados!", "Dados excluídos!", 4000, 'bottomright', notificationIconDeletar, true );
}
//Quando clicar no botão deletar mostra um alerta antes de chamar a funcão excluir.
import mx.events.CloseEvent;
public function alertExcluir():void
{
Alert.yesLabel='Sim';
Alert.noLabel='Não';
Alert.show('Deseja realmente excluir?','ATENÇÃO',Alert.YES|Alert.NO, null, excluir);
}
//após a confirmação do alerta da função alertExcluir.
public function excluir(e:CloseEvent):void{
if(e.detail == Alert.YES){
deleteItem()
showAlertDeletar()
}
}
public function select(key:String):void{
var tam:int = tFerramentas.length;
for (var i:int=0; i< tam; i++) {
var item:String = tFerramentas[i];
if(item == key) {
tipo.selectedIndex = i;
break;
}
}
}
]]>
</mx:Script>
<mx:Style source="styles.css" />
<mx:Validator id="tipoValidator" required="true" source="{tipo}" property="text" requiredFieldError="Campos com '*' são obrigatórios."/>
<mx:Form width="381" height="466">
<mx:FormItem label="Código:">
<mx:TextInput id="ferramentaId" text="{_ferramenta.ferramenta_id}" enabled="false" width="200"/>
</mx:FormItem>
<mx:FormItem label="Tipo:" required="true">
<mx:ComboBox prompt=" " dataProvider="{tFerramentas}" id="tipo" text="{_ferramenta.tipo}" width="200" labelField="tferramenta"/>
</mx:FormItem>
<mx:FormItem label="Descrição:">
<mx:TextInput id="descricao" text="{_ferramenta.descricao}" width="200"/>
</mx:FormItem>
<mx:FormItem label="Data de Aquisição:">
<mx:DateField id="dataAquisicao" selectedDate="{_ferramenta.data_aquisicao}" editable="true" yearNavigationEnabled="true" width="200" formatString="DD/MM/YYYY" dayNames="['D','S','T','Q','Q','S','S']" monthNames="['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro']"/>
</mx:FormItem>
</mx:Form>
<mx:Button label="Salvar" click="save()" left="16" bottom="20"/>
<mx:Button label="Deletar" click="alertExcluir()" left="87" bottom="20"/>
</mx:Canvas>
Sei que está uma bagunça, espero que você entenda, estou enviando imagens para vc ver como fica ao inserir e fechar e depois clicar 2x no datagrid para atualizar, cara você é minha última esperança, porque já fiz de tudo para dar um jeito nesse problema. Obrigado pela dica.