Introdução ao SQL Server CE

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (0)

Primeiros passos no SQL Server CE.

Primeiros passos no SQL Server CE

Microsoft® SQL Server™ 2000 Windows® CE Edition (SQL Server CE) é uma versão especifica para a plataforma Windows CE-based, um banco de dados robusto, veloz e confiável para SmartDevices, ele é um subset do SQL Server 2000, algumas características não estão presentes na versão Server CE, para quem já usa o SQL Server 2000 o impacto será irrelevante.  O .NET Framework fornece um Provider(Provedor) para acesso ao SQL Server CE através do namespace System.Data.SqlServerCe. Você poderá usar todo o poder do DDL(Data Definition Language) para criar um Banco de Dados, alterar tabelas e fazer a definição de valores padrões, poderá usar a DML(Data Manipulation Language) para inserir(insert), deletar(delete) e atualizar(update) os dados, você terá todo o poder de um Banco de Dados Relacional, poderá usar criptografia de 128 Bits para senhas e arquivo. O SQL Server CE suporta Banco de Dados de até 2GB(GigaBytes) e Blobs de até 1GB(GigaByte).

 

Tipos de Dados

Descrição

bigint

Integer (conjunto de Inteiros) dados de -2^63 (- 9,223,372,036,854,775,808) por 2^63-1 (9,223,372,036,854,775,807). Tamanho do Armazenamento é de 8 bytes.

integer

Integer (Inteiros) dados de -2^31 (-2,147,483,648) por 2^31 - 1 (2,147,483,647).

smallint

Integer(Inteiros) dados de –32,768 to 32,767. Tamanho do Armazenamento é de 2 bytes.

tinyint

Integer(Inteiros) dados de 0 to 255. Tamanho do armazenamento é de 1 byte.

bit

Integer(Inteiro) armazena 0 ou 1.

numeric (p, s)

Precisão-Fixada e Escala-Numerica dados de -10^38 +1 por 10^38 –1. p especifica a precisão que pode ser entre de 1 e 38. s especifica a escala que pode ser entre 0 e p.

money

Valor Monetário dados de -2^63 (- 922,337,203,685,477.5808) por 2^63 - 1 (922,337,203,685,477.5807. Tamanho de armazenamento de 8 bytes.

float

Ponto Flutuante, dados de -1.79E + 308 por 1.79E + 308

Tamanho de armazenamento de 8 bytes.

real

Precisão Flutuante, dados de -3.40E + 38 por 3.40E + 38.

datetime

Data e Hora, contem tanto a Hora como a Data

national character(n)

Sinônimo:
nchar(n)

Tamanho-Fixo Unicode dados com tamanho máximo de 255 caracteres.
Tamanho Padrão = 1
Tamanho do Armazenamento, entre bytes, é duas vezes o tamanho dos caracteres armazenados.

national character varying(n)

Sinônimo:
nvarchar(n)

Tamanho-Váriavel Unicode dados com tamanho de 1 a 255 caracteres.
Tamanho Padrão = 1
Tamanho do Armazenamento, entre bytes, é duas vezes o tamanho dos caracteres armazenados.

ntext

Variable-length Unicode data with a maximum length of (2^30 - 2) / 2 (536,870,911) characters. Storage size, in bytes, is two times the number of characters entered.

binary(n)

Tamanho-Fixo binário dados com um tamanho máximo de 510 bytes. Tamanho Padrão = 1

varbinary(n)

Tamanho-Váriavel binário dados com um tamanho máximo de 510 bytes. Tamanho Padrão = 1

image

Variable-length binary data with a maximum length of 2^30 – 1 (1,073,741,823) bytes.

uniqueidentifier

Um Identificador Global Unico(GUID). Tamanho do armazenamento de 16 bytes.

IDENTITY [(s, i)]

Ela é uma propriedade da Coluna de Dados, não exatamente um tipo de dados.

Somente Colunas com tipo de dados inteiros(integer) podem usar a identidade(Identity). Uma tabela pode ter somente uma coluna de identidade. Pode ser identificado um valor inicia e um incrementador pode ser especificado e a coluna não poderá ser atualizada.

s (inicial) = Valor inicial

i (incrementador) = Valor incrementado a cada novo registro.

 

Iniciando o Desenvolvimento

Agora que conhecemos como funciona o SQL Server CE, quais são os tipos de dados, vamos criar e fazer acesso a um Banco de Dados SQL Server CE a partir do Visual Studio, criaremos tabelas, índices tudo baseado em SQL(Strutured Query Language), usarei nesse artigo a Linguagem VB.net, com alterações de sintaxe você poderá usar o C# sem mais complicações.

Acompanhe a Tabela 1 na qual contem as definições das propriedades dos componentes buttons, o sistema apresentado, será parecido com o da Figura 1.

Name

Text

btnCriarBd

Criar Banco de Dados

btnConectarBd

Conectar BD

btnCriarTabelas

Criar Tabelas

btnInserirDados

Inserir Dados

btnSelecionarDados

Selecionar Dados

Tabela 1. Definições das Propriedades dos Componentes

Figura 1. Ilustração dos Controles usados no Artigo.

 

É necessário referenciar o Namespace System.Data.SqlServerCe, com isso teremos o acesso total ao SQL Server CE, para referenciar é simples, no Solution Explorer clique com o botão direto do mouse encima do projeto do Pocket PC, clique no item “Add Reference...”, após isso abrirá uma janela, siga os passos ilustrados na Figura 2.

 

Figura 2. Ilustração de como referenciar o namespace System.Data.SqlServerCe no Projeto.

 

Acessando SQL Server CE

Vamos ao código, faça os imports necessários e atribua o código da Listagem 2, aos eventos dos buttons.

'Importar os metódos da classe SQLServerCE

Imports System.Data.SqlServerCe

 

'Também é necessario fazer o Import das Funções de I/O

Imports System.IO

 

Public Class Form1

    Inherits System.Windows.Forms.Form

    Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu

 

#Region " Windows Form Designer generated code "

 

    Public Sub New()

        MyBase.New()

 

        'This call is required by the Windows Form Designer.

        InitializeComponent()

 

        'Add any initialization after the InitializeComponent() call

 

    End Sub

 

    'Form overrides dispose to clean up the component list.

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

        MyBase.Dispose(disposing)

    End Sub

 

    'NOTE: The following procedure is required by the Windows Form Designer

    'It can be modified using the Windows Form Designer. 

    'Do not modify it using the code editor.

    Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid

    Friend WithEvents btnCriarBd As System.Windows.Forms.Button

    Friend WithEvents btnConectarBd As System.Windows.Forms.Button

    Friend WithEvents btnCriarTabelas As System.Windows.Forms.Button

    Friend WithEvents btnInserirDados As System.Windows.Forms.Button

    Friend WithEvents btnSelecionar As System.Windows.Forms.Button

    Private Sub InitializeComponent()

        Me.MainMenu1 = New System.Windows.Forms.MainMenu

        Me.btnCriarBd = New System.Windows.Forms.Button

        Me.btnConectarBd = New System.Windows.Forms.Button

        Me.btnCriarTabelas = New System.Windows.Forms.Button

        Me.btnInserirDados = New System.Windows.Forms.Button

        Me.btnSelecionar = New System.Windows.Forms.Button

        Me.DataGrid1 = New System.Windows.Forms.DataGrid

        '

        'btnCriarBd

        '

        Me.btnCriarBd.Location = New System.Drawing.Point(16, 16)

        Me.btnCriarBd.Size = New System.Drawing.Size(112, 20)

        Me.btnCriarBd.Text = "Criar Banco Dados"

        '

        'btnConectarBd

        '

        Me.btnConectarBd.Location = New System.Drawing.Point(136, 16)

        Me.btnConectarBd.Size = New System.Drawing.Size(96, 20)

        Me.btnConectarBd.Text = "Conectar BD"

        '

        'btnCriarTabelas

        '

        Me.btnCriarTabelas.Location = New System.Drawing.Point(16, 48)

        Me.btnCriarTabelas.Size = New System.Drawing.Size(112, 20)

        Me.btnCriarTabelas.Text = "Criar Tabelas"

        '

        'btnInserirDados

        '

        Me.btnInserirDados.Location = New System.Drawing.Point(136, 48)

        Me.btnInserirDados.Size = New System.Drawing.Size(96, 20)

        Me.btnInserirDados.Text = "Inserir Dados"

        '

        'btnSelecionar

        '

        Me.btnSelecionar.Location = New System.Drawing.Point(56, 80)

        Me.btnSelecionar.Size = New System.Drawing.Size(112, 20)

        Me.btnSelecionar.Text = "Selecionar Dados"

        '

        'DataGrid1

        '

        Me.DataGrid1.Location = New System.Drawing.Point(8, 112)

        Me.DataGrid1.Size = New System.Drawing.Size(224, 136)

        Me.DataGrid1.Text = "DataGrid1"

        '

        'Form1

        '

        Me.Controls.Add(Me.DataGrid1)

        Me.Controls.Add(Me.btnSelecionar)

        Me.Controls.Add(Me.btnInserirDados)

        Me.Controls.Add(Me.btnCriarTabelas)

        Me.Controls.Add(Me.btnConectarBd)

        Me.Controls.Add(Me.btnCriarBd)

        Me.Menu = Me.MainMenu1

        Me.Text = "SQL Server CE"

 

    End Sub

 

#End Region

    'Variável contem o path do nosso BD, aonde ele será criado e qual BD será usado

    Dim PathBD As String = "\Dados.sdf"

 

    'Variavél que instancia o objeto de conexão com o BD

    Dim Conn As SqlCeConnection

 

    Private Sub MostraStatus(ByVal pMensagem As String)

        MessageBox.Show("Status Atual: " & pMensagem, "Status da Operação", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1)

    End Sub

    Private Sub btnCriarBd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCriarBd.Click

        Cursor.Current = Cursors.WaitCursor

        Try

            'Se o arquivo de Banco de Dados não exista,

            'o mesmo é criado no caminho do PathBD

            If Not File.Exists(PathBD) Then

                Dim SQLEngine As New SqlCeEngine("Data Source=" & PathBD)

                SQLEngine.CreateDatabase()

                MostraStatus("Banco de Dados Criado com Sucesso!!!")

            Else

                MostraStatus("Banco de Dados já Existe!!!")

            End If

        Catch

            'Caso ocorra algum erro deve ser tratado aqui

            Throw

        End Try

        Cursor.Current = Cursors.Default

    End Sub

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

    End Sub

 

    Private Sub btnConectarBd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConectarBd.Click

        Cursor.Current = Cursors.WaitCursor

        Try

            'Inicia uma instancia da classe SQLCeconnection

            Conn = New SqlCeConnection("Data Source=" & PathBD)

 

            'Caso a conexão esteja fechada, será possível conectar com o BD

            If Conn.State = ConnectionState.Closed Then

 

                'Abre a conexão

                Conn.Open()

 

                MostraStatus("Conectado ao Banco de dados " & PathBD & " com sucesso !!!")

            End If

        Catch ex As Exception

            'Caso ocorra algum tipo de erro, deve ser tratado aqui

        End Try

        Cursor.Current = Cursors.Default

    End Sub

 

    Private Sub btnCriarTabelas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCriarTabelas.Click

        Cursor.Current = Cursors.WaitCursor

 

        Dim cmd As New SqlCeCommand( _

                "CREATE TABLE PRODUTOS(CODIGO INT IDENTITY PRIMARY KEY NOT NULL, NOME NVARCHAR(30), PRECO MONEY);", Conn)

        cmd.ExecuteNonQuery()

        cmd.Dispose()

 

        Cursor.Current = Cursors.Default

        MostraStatus("Tabela criada com Sucesso!!!")

 

    End Sub

 

    Private Sub btnInserirDados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserirDados.Click

        Cursor.Current = Cursors.WaitCursor

 

        Dim cmd As New SqlCeCommand( _

        "INSERT INTO PRODUTOS(NOME, PRECO) VALUES('LEITE', 1.5);", Conn)

        cmd.ExecuteNonQuery()

 

        cmd.CommandText = "INSERT INTO PRODUTOS(NOME, PRECO) VALUES('ARROZ', 8.5);"

        cmd.ExecuteNonQuery()

 

        cmd.Dispose()

        Cursor.Current = Cursors.Default

 

        MostraStatus("Inserção concluida com Sucesso!!!")

    End Sub

 

    Private Sub btnSelecionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelecionar.Click

        Cursor.Current = Cursors.WaitCursor

 

        Dim Adp As New SqlCeDataAdapter("SELECT * FROM PRODUTOS", Conn)

        Dim ds As DataSet = New DataSet

        Adp.Fill(ds)

        DataGrid1.DataSource = ds.Tables(0).DefaultView

 

        Cursor.Current = Cursors.Default

 

        MostraStatus("Dados Selecionados com Sucesso!!!")

    End Sub

End Class

Listagem 2. Código dos Eventos dos Buttons

Conclusões

Aprendemos um pouco das características do SQL Server CE, e como usar o SQL CE no Visual Studio com a Linguagem VB.net, espero ter ajudado.

 

Jefferson Luis Junglaus jeffersonjunglaus@gmail.com, trabalha com informática desde 2002, trabalhou como WebDesign, Instrutor, e atualmente trabalha em desenvolvimento de Sistemas de Automação Comercial em Delphi, também desenvolve Sistemas para Pocket PC, SmartPhones e PalmOS.
http://br.thespoke.net/MyBlog/delphixs/MyBlog.aspx

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ficou com alguma dúvida?