Desenvolvendo em BREW - Parte 3 – Etapa 04

Finalizando o artigo sobre BREW.

Desenvolvendo em BREW - Parte 3 – Etapa 04

Utilizando a classe DB

Para utilizarmos a classe DB existem três passos básicos:

·sua declaração e instanciação no AEEApplet da aplicação (representado pela struct FuelManager);

·a abertura e fechamento da base na inicialização e no fechamento da aplicação;

·utilização dos métodos de manipulação de dados.

 

O arquivo FuelManager.h (Listagem 7) já foi devidamente explanado no artigo introdutório da aplicação Fuel Manager (edição 12 da WebMobile). O que há de novo nesse arquivo é a declaração do "atributo" DB* fuelManagerDB (Listagem 7, linha 031) que permitirá o acesso à classe acessória DB de qualquer parte de nossa aplicação.

 

Listagem 7. Conteúdo do FuelManager.h

001 ...

002 typedef struct _FuelManager

003 {

004/*

005  Atributo AEEApplet - Applet base da plataforma BREW.

006  Precisa ser NECESSARIAMENTE o primeiro elemento da Struct 007 por causa

008  do alinhamento de bits na sobreposição de memória do Applet 009 original.

010*/

011AEEAppleta ;

012

013/*

014  Permite o acesso direto as informações sobre o device onde a 015 aplicação

016  está sendo executada.

017*/

018 AEEDeviceInfo  m_DeviceInfo;

019

020/*

021  Controla a tela que está corrente exibida no display. Caso 022 não haja

023  nenhuma tela o valor desse atributo deve ser NULL.

002*/

025Screen* currentScreen;

026

027/*

028  Componente que permite o acesso a base de dados da

029 aplicação.

030*/

031DB* fuelManagerDB;

032

033 } FuelManager;

034  ...

 

A inicialização desse atributo deve ser feita junto com os restos dos atributos da aplicação, ou seja, no "método" FuelManager_InitAppData (Listagem 8, linha 037) e sua destruição também segue a mesma regra, deve ser feita no método FuelManager_FreeAppData (Listagem 8, linha 045). Uma vez instanciado, precisamos abrir o banco quando a aplicação for iniciada e fechar quando ela for finalizada, o que pode ser visto no método FuelManager_HandleEvent (Listagem8, linha 012 e 018 respectivamente).

 

Listagem 8. Conteúdo do FuelManager.cpp

001 ...

002 static boolean FuelManager_HandleEvent( FuelManager* pMe,

003 AEEEvent eCode,

004 uint16 wParam,

005 uint32 dwParam )

006 { 

007boolean handled = FALSE;

008

009switch (eCode)

010{

011case EVT_APP_START:

012pMe->fuelManagerDB->open();

013showScreen(pMe, SPLASH_SCREEN);

014ISHELL_SetTimer(pMe->a.m_pIShell,

015100,timerCallBack,pMe);

016return(TRUE);

017case EVT_APP_STOP:

018pMe->fuelManagerDB->close();

019return(TRUE);

020case EVT_SHOW_SCREEN:

021showScreen(pMe,wParam);

022 return(TRUE);

023case EVT_APP_RESUME:

024if(pMe->currentScreen!=NULL){

025pMe->currentScreen->draw();

026}

027return(TRUE);

028default:

029if ( pMe->currentScreen != NULL ){

030  handled = pMe->currentScreen->handle_Event(

031eCode,wParam,dwParam);

032}

033}

034return handled;

035 }

036

037 ...

 

Exemplificaremos o uso das funções da classe DB através do método inserir, sendo utilizado na tela de inserção e visualização de registros AddViewRefuelScreen. Essa classe também já foi devidamente explanada no artigo desenvolvendo GUI em Brew - Parte 1 (edição 13 da WebMobile). Adicionamos à classe da tela apenas o método saveRefuel(), que recupera de cada componente gráfico seus valores e utiliza o método insert da instância da classe DB referenciada pelo FuelManagerApplet (Listagem 9, linha 018) para gravar os valores na base de dados. Após esse procedimento o registro está devidamente salvo.

 

Listagem 9. Método saveRefuel() da classe AddViewRefuel

001 ...

002 void AddViewRefuelScreen::saveRefuel(){

003

004AECHAR date[15];

005intdate_lentgth;

006AECHAR temp[10];

007float  litros;

008float  valor;

009int32  odometro;

010

011IDATECTL_GetDateString( this->pDate, date, 15, &date_lentgth,

DFMT_DD_MON_YYYY);

012ITEXTCTL_GetText(this->pTextLitros,temp,9);

013litros = WSTRTOFLOAT(temp);

014ITEXTCTL_GetText(this->pTextValor,temp,9);

015valor = WSTRTOFLOAT(temp);

016ITEXTCTL_GetText(this->pTextOdometroTotal,temp,9);

017odometro = ATOI((const char*)temp);

018ownerApplet->fuelManagerDB->

insert(date,&litros,&valor,&odometro);

019 }

020 ...

Conclusão

Nesse artigo aprendemos como utilizar a API de armazenamento de dados do gerenciador de registros da plataforma BREW.

Links e referências interessantes

BREW API Reference

Presente na documentação do Qualcomm BREW, é perfeita para desenvolvedores que desejam consultar a API.

 

BREW Forums (disponível em http://brewforums.qualcomm.com/)

Fórum para usuários da plataforma BREW.

 

Developing Software for the Qualcomm BREW Platform: Ray Rischpater

Livro fundamental para iniciantes em BREW.

 

Simplifying Access to BREW Databases : Ray Rischpater (disponível em http://www.developer.com/ws/brew/article.php/3505906)

Artigo de Richpater (em inglês) que descreve a API de banco de dados em BREW.

 

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados