Setores da Nave


Plano de Vôo

Outras Rotas

RSS Br-Linux.org


« SQL SERVER CE: criando um framework para acesso a dados em dispositivos móveis Parte IV | COCKPIT | SQL SERVER CE: criando um framework para acesso a dados em dispositivos móveis Parte I »

SQL SERVER CE: criando um framework para acesso a dados em dispositivos móveis Parte III

Por bill | maio 8, 2008

PARTE III

4. métodos de conexão

nossa camada de acesso vai interagir com o sql server compact edition de diversas formas. precisaremos selecionar, apagar, inserir e alterar informações. assim, com base nos objetos do ado.net 2.0 vamos definir os métodos a serem disponibilizados pela classe. criaremos então o arquivo de classe passo-a-passo, iniciando com os métodos a seguir:

· abreconexao(): método que conecta ao banco de dados móvel.

· fechaconexao(): método que desconecta a aplicação do banco de dados.

· criabd(nomebd as string): cria um banco de dados num path desejado.

para adicionar um método no visual da classe, selecione o diagrama, clique com o botão direito sobre ele e vá ao menu add>method(). quando o método for adicionado, defina o nome dele como abreconexao e pressione enter. repita esse passo, para os métodos fechaconexao e criabd. vá ao código da classe e repare que os métodos já foram criados automaticamente.
para que seja possível utilizar o banco de dados sql server compact edition, precisa-se adicionar uma referência a sua biblioteca. para isso, clique com o botão direito sobre o nome do seu projeto na solution explorer, e vá ao menu add reference. na aba .net, encontre e selecione o namespace system.data.sqlserverce (figura 4). feito isso, clique em ok.

figura   4 - adicionando referência ao sql server ce

imports system.data

imports system.data.sqlserverce

imports system.text

imports system.collections.generic

namespace conexoes

public class conexaosqlserverce

sub new() ‘metodo construtor

end sub

‘objeto para conexao

private conexao as new sqlceconnection()

public sub abreconexao()

end sub

public sub fechaconexao()

end sub

sub criabd(byval nomebd as string)

end sub

end class

end namespace

com a estrutura do framework definida, vamos agora implementar os métodos de conexão. como já exibido na listagem 1, crie uma variável que armazenará o objeto de conexão com o banco. essa variável é do tipo sqlceconnection e é responsável por conectar, operar e desconectar com a base de dados.
4.1 código dos métodos de conexão

o método abreconexao precisa sempre verificar o estado da conexão antes de abri-la, afinal, pode ser que mais de um aplicativo esteja acessando aquela base de dados. para isso, ele se utiliza do método connectionstate. se a resposta for falsa, através de uma string de conexão (que em sql server ce é representada apenas pelo caminho do arquivo de extensão *.sdf) a conexão é realizada.

o método fechaconexao, faz a mesma verificação de estado do método de abertura. se a resposta for verdadeira, ele finaliza a conexão.

quando o banco de dados não existe no pocket, pode-se utilizar o objeto engine para a criação de um arquivo pronto de extensão *.sdf. o método a ser chamado é o createdatabase().

preencha o conteúdo dos três métodos apresentados como nas listagens 2, 3 e 4.

listagem 2 - método abreconexao(banco as string)

public sub abreconexao(byval banco as string)

try

if (conexao.state = connectionstate.closed) then

dim strconexao as string = “data source=\temp\”+ banco +”.sdf”

conexao = new sqlceconnection(strconexao)

conexao.open()

end if

catch ex as exception

throw new exception(”ocorreu um problema na conexão com o base de dados, devido ao    seguinte erro: ” + ex.message)

end try

end sub

listagem 3 - método fechaconexao()

public sub fechaconexao()

try

if (conexao.state = connectionstate.open) then

conexao.close()

end if

catch ex as exception

throw new exception(”ocorreu um problema na conexão com o base de dados, devido ao seguinte erro: ” + ex.message)

end try

end sub

listagem 4 - método criabd(nomebd as string)

sub criabd(byval nomebd as string)

dim sqlengine as new sqlceengine(”data source=\temp\” + nomebd + “.sdf”)

sqlengine.createdatabase()

end sub

5. métodos de seleção de dados

agora vamos implementar os métodos que acessam a base de dados criada e retornam valores para serem trabalhados dentro do nosso aplicativo. para isso, criaremos três métodos. cada um deles através de uma string sql terá como função preencher objetos dataset, datatable e datareader. acompanhe os métodos a serem criados nas listagens 5, 6 e 7.

listagem 5 - método preenchedataset(dts as dataset, sql as string)

public sub preenchedataset(byval dts as dataset, byval sql as string)

try

dim da as new sqlcedataadapter(sql, conexao)

da.fill(dts)

catch ex as exception

throw new exception(”ocorreu um problema na conexão com o base de dados, devido ao seguinte erro: ” + ex.message)

end try

end sub

listagem 6 - método preenchedatatable(dt as datatable, sql as string)

public sub preenchedatatable(byval dt as datatable, byval sql as string)

try

dim da as new sqlcedataadapter(sql, conexao)

da.fill(dt)

catch ex as exception

throw new exception(”ocorreu um problema na conexão com o base de dados, devido ao seguinte erro: ” + ex.message)

end try

end sub

listagem 7 - método preenchedatareader(sql as string)

public function preenchedatareader(byval sql as string) as sqlcedatareader

dim cmd as new sqlcecommand(sql, conexao)

dim dr as sqlcedatareader = cmd.executereader()

return dr

end function

cada um dos métodos criados espera por parâmetro uma string sql e um objeto a ser preenchido. é importante ressaltar que no caso do método que visa o preenchimento de um datareader não temos uma forma genérica de preenchimento. o objeto a ser definido no preenchimento é um sqlcedatareader, se estivéssemos utilizando outro banco de dados seria necessário trocar a refêrencia a um objeto que desenhado para este banco determinado.

Explore também:

Tópicos: Central Trial |

Comentários