« 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
Partes do Artigo Uma Camada de Acesso a Dados para SQL Server CE
- SQL SERVER CE: criando um framework para acesso a dados em dispositivos móveis Parte IV
- SQL SERVER CE: criando um framework para acesso a dados em dispositivos móveis Parte III
- SQL SERVER CE: criando um framework para acesso a dados em dispositivos móveis Parte II
- SQL SERVER CE: criando um framework para acesso a dados em dispositivos móveis Parte I
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.

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.
Tópicos: Central Trial |





