Skip to content

3. Anexos

3.1. Criando um projeto web com o Visual Studio.net no XP familiar

O Visual Studio.net permite criar diferentes tipos de projetos:

Image

Para criar um projeto de aplicativo web, normalmente escolhe-se o tipo [Application Web ASP.NET]. Esse tipo de projeto requer a presença de um servidor web IIS local ou remoto. Se estiver trabalhando em uma máquina Windows XP, esse servidor não existe e não é possível instalá-lo. Portanto, não é possível criar um projeto do tipo [Application Web ASP.NET].

É possível contornar esse obstáculo aceitando algumas pequenas inconveniências. Basta:

  • utilizar o servidor web Cassini em vez do servidor IIS. Ele está disponível gratuitamente no site da Microsoft.
  • usar um projeto [Bibliothèque de classes] em vez do projeto [Application Web ASP.NET]

Vamos criar um projeto simples que mostre como proceder.

  • Criar um projeto [Bibliothèque de classes]
  • excluir [Class1.vb]

Image

  • adicionar um novo elemento ao projeto, do tipo [Fichier texte], e nomeá-lo [demo.aspx]:
  • o arquivo [demo.aspx] é reconhecido como uma página da web e um editor de páginas é associado a ele. Esse editor possui dois painéis:
  • [design] para construir a página graficamente
  • [HTML] para acessar o código HTML da página

Image

  • clicar em [Affichage/Code] para exibir a parte do código VB da página. Nada acontece. Não há acesso ao código VB da página.
  • acesse o painel [HTML] e insira o código que conectará a página [demo.aspx] ao código [demo.aspx.vb]:

Image

  • solicitar a exibição do código de controle associado à página por meio de [Affichage code - F7]. Obtém-se o arquivo [demo.aspx.vb]:

Image

  • a página [demo.aspx] agora é reconhecida como uma página da web [.aspx] com o código [.aspx.vb] associado.
  • Voltemos ao painel [Design] de [demo.aspx] e criemos a seguinte página:

Image

A página contém texto e um componente de servidor do tipo [Label] com o identificador [lblHeure].

  • Vamos acessar o painel [HTML]. Nele, encontramos o seguinte código:
<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
Démo ASPX, il est
<asp:Label id="lblHeure" runat="server"></asp:Label>

Esse código está incompleto do ponto de vista da sintaxe HTML. Vamos completá-lo:

<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
<html>
    <head>
        <title>démo ASPX</title></head>
    <body>
        Démo ASPX, il est
        <asp:Label id="lblHeure" runat="server"></asp:Label>
    </body>
</html>
  • Vamos acessar o código [demo.aspx.vb] para inserir o código de controle que definirá a hora no componente [lblHeure]. Observamos que esse código não é reconhecido pelo Intellisense, a ferramenta de auxílio à escrita de código.
  • Feche os arquivos [demo.aspx] e [demo.aspx.vb], salvando-os antes, e reabra-os. Passe para o código [demo.aspx.vb]. Desta vez, o componente [lblHeure] de [demo.aspx] é reconhecido corretamente pelo Intellisense no código [demo.aspx.vb]. Complete o código:

Image

  • gerar o projeto por meio de [Générer/Générer demo]. Se a geração ocorrer corretamente, o DLL será gerado na pasta [bin] do projeto:

Image

  • Estamos prontos para os testes. Configuramos o servidor Cassini (veja o parágrafo seguinte) da seguinte maneira:

Image

O destino do atalho para o Cassini é definido da seguinte forma:

"E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /path:"D:\temp\07-04-05\demo" /vpath:"/demo"
E:\..\WebServer.exe
o caminho do executável
D:\temp\07-04-05\demo
o caminho da pasta do projeto web do Visual Studio
/demo
o caminho virtual associado
  • Inicie o Cassini. Seu ícone será exibido na barra de tarefas. Clique com o botão direito do mouse sobre ele e selecione a opção [Show details] para verificar se a configuração do servidor web está correta:

Image

  • Com um navegador, acessemos a página que criamos, solicitando o URL [http://localhost/demo/demo.aspx]. Obtemos o seguinte resultado:

Image

Conseguimos criar um aplicativo web no Visual Studio utilizando:

  • um projeto do tipo [bibliothèque de classes]
  • o servidor web Cassini

Agora sabemos como construir aplicativos web em computadores que não dispõem do servidor IIS, como é o caso dos computadores Windows XP, edição familiar.

3.2. Onde encontrar o servidor web Cassini ?

Para trabalhar com a plataforma .NET da Microsoft, é possível utilizar o servidor web Cassini. Ele está disponível por meio de um produto chamado [WebMatrix], que é um ambiente gratuito de desenvolvimento web nas plataformas .NET, disponível no URL:

Image

Seguiremos atentamente o procedimento de instalação do produto:

  • baixar e instalar a plataforma .NET (versão 1.1, de março de 2004)
  • baixar e instalar o WebMatrix
  • baixar e instalar o MSDE (Microsoft Data Engine), que é uma versão limitada do SQL Server.

Após a conclusão da instalação, o produto [WebMatrix] estará disponível na lista de programas instalados:

Image

O link [ASP.NET] Web Matrix inicia o IDE de desenvolvimento ASP.NET:

Image

O link [Class Browser] inicia uma ferramenta de exploração de classes .NET:

Image

Para testar a instalação, vamos executar o [WebMatrix]:

Ao ser iniciado pela primeira vez, o [WebMatrix] solicita as características do novo projet.C; essa é sua configuração padrão. É possível configurá-lo para que essa caixa de diálogo não apareça na inicialização. Para isso, utilize a opção [File/New File]. O [WebMatrix] permite criar esqueletos para diferentes aplicativos web. Acima, especificamos com (1) que queríamos criar um aplicativo [ASP.ET Page], que é uma página da web. Com (2), especificamos a pasta na qual essa página da web será colocada. Em (3), informamos o nome da página. Ela deve ter a extensão .aspx. Por fim, em (4), especificamos que queremos trabalhar com a linguagem VB.NET, já que o [WebMatrix] também suporta as linguagens C# e J#. Feito isso, o [WebMatrix] exibe uma página de edição do arquivo [demo1.aspx]. Colocamos nela o seguinte código:

Image

  • A aba [Design] permite “desenhar” a página da web que se deseja construir. O processo é semelhante ao do IDE para a criação de aplicativos do Windows.
  • O design gráfico da página da Web no [Design] irá gerar código HTML na aba [HTML]
  • A página da Web pode conter controles que geram eventos aos quais é preciso reagir, como um botão, por exemplo. Esses eventos serão gerenciados pelo código VB.NET, que será colocado na aba [Code]
  • por fim, o arquivo demo1.aspx é um arquivo de texto que combina o código HTML e o código VB.NET, resultado do projeto gráfico feito em [Design], do código HTML que foi adicionado manualmente no [HTML] e do código VB.NET inserido no [Code]. O arquivo completo está disponível na aba [All].
  • Um desenvolvedor experiente em ASP.ET pode criar o arquivo demo1.aspx diretamente com um editor de texto, sem a ajuda de nenhum IDE.

Vamos selecionar a opção [All]. Percebemos que o [WebMatrix] já gerou código:

<%@ Page Language="VB" %>
<script runat="server">

     ' Insira o código da página aqui
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
         <!-- Insira o conteúdo aqui -->
    </form>
</body>
</html>

Não vamos tentar explicar esse código aqui. Vamos transformá-lo da seguinte maneira:

<html>
<head>
    <title>Démo asp.net </title>
</head>
<body>
    Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>

O código acima é uma combinação do código HTML com o código VB.NET. Ele foi inserido entre as tags <% ... %>. Para executar esse código, utilizamos a opção [View/Start]. O [WebMatrix] inicia, então, o servidor web Cassini, caso ele ainda não esteja em execução

Image

É possível aceitar os valores padrão propostos nessa caixa de diálogo e selecionar a opção [Start]. O servidor web estará então ativo. O [WebMatrix] iniciará o navegador padrão do computador em que está instalado e solicitará o URL http://localhost:8080/demo1.aspx:

Image

É possível utilizar o servidor Cassini fora do [WebMatrix]. O executável do servidor está localizado em <WebMatrix>\<versão>\WebServer.exe, onde <WebMatrix> é o diretório de instalação do [WebMatrix] e <versão> é o número da versão:

Image

Abramos uma janela do DOS e acessemos a pasta do servidor Cassini:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003  11:00               53 248 WebServer.exe
...

Vamos executar o [WebServer.exe] sem parâmetros:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver

Aparece uma janela de ajuda:

Image

O aplicativo [WebServer], também conhecido como servidor web Cassini, aceita três parâmetros:

  • /port: número da porta do serviço web. Pode ser qualquer valor. Por padrão, o valor é 80
  • /path: caminho físico de uma pasta no disco
  • /vpath: pasta virtual associada à pasta física anterior. É importante observar que a sintaxe não é /path=caminho, mas sim /vpath:caminho, ao contrário do que indica o exemplo [Example] do painel de ajuda acima.

Vamos colocar o arquivo [demo1.aspx] na seguinte pasta:

Image

Vamos associar a pasta física [d:\data\devel\webmatrix] à pasta virtual [/webmatrix]. O servidor web poderia ser iniciado da seguinte maneira:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"

O servidor Cassini fica então ativo e seu ícone aparece na barra de tarefas. Se clicarmos duas vezes nele:

Image

Encontram-se os parâmetros de inicialização do servidor. Também é possível encerrar o [Stop] ou reiniciar o servidor web [Restart]. Ao clicar no link [Root URL], a raiz da árvore de diretórios web do servidor é exibida em um navegador:

Image

Vamos seguir o link [demos]:

Image

e, em seguida, o link [demo1.aspx]:

Image

Vemos, portanto, que se a pasta física P=[d:\data\devel\webmatrix] foi associada à pasta virtual V=[/webmatrix] e o servidor opera na porta 100, a página da web [demo1.aspx], que se encontra fisicamente em [P\demos], estará acessível localmente por meio de URL [http://localhost:100/V/demos/demo1.aspx].

Para não precisar abrir uma janela DOS para iniciar o servidor Cassini, é possível criar um atalho para o executável do servidor com propriedades semelhantes às seguintes:

Image

Cible
"C:\Arquivos de Programas\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\trabalho\2004-2005\aspnet\webarticles-010405\versão3\web" /vpath:"/webarticles"
Démarrer dans
"C:\Arquivos de Programas\Microsoft ASP.NET Web Matrix\v0.6.812"

3.3. Onde encontrar o Spring?

O site principal do Spring é [http://www.springframework.org/]. Esse é o site da versão Java. A versão .NET em desenvolvimento (abril de 2005) está no endereço [http://www.springframework.net/].

Image

O site de download está em [SourceForge]:

Image

Depois de baixar o arquivo zip acima, descompacte-o:

Image

Neste documento, utilizamos apenas o conteúdo da pasta [bin]:

Image

Em um projeto do Visual Studio que utiliza o Spring, é necessário realizar sistematicamente duas ações:

  • colocar os arquivos acima na pasta [bin] do projeto
  • adicionar ao projeto uma referência ao assembly [Spring.Core.dll]

3.4. Onde encontrar o Nunit?

O site principal do Nunit é [http://www.nunit.org/]. A versão disponível em abril de 2005 é a 2.2.0:

Image

Baixe essa versão e instale-a. A instalação cria uma pasta onde você encontrará a versão gráfica de teste:

O que é interessante está na pasta [bin]:

Image

Image

A seta acima indica o utilitário gráfico de teste. A instalação também adicionou novos elementos ao repositório de assemblies do Visual Studio, que vamos explorar agora.

Vamos criar o seguinte projeto do Visual Studio:

Image

A classe testada está em [Personne.vb]:

Public Class Personne

     ' campos privados
    Private _nom As String
    Private _age As Integer

     ' construtor padrão
    Public Sub New()
    End Sub

     ' propriedades associadas aos campos privados
    Public Property nom() As String
        Get
            Return _nom
        End Get
        Set(ByVal Value As String)
            _nom = Value
        End Set
    End Property

    Public Property age() As Integer
        Get
            Return _age
        End Get
        Set(ByVal Value As Integer)
            _age = Value
        End Set
    End Property

     ' cadeia de identidade
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

     ' método init
    Public Sub init()
        Console.WriteLine("init personne {0}", Me.ToString)
    End Sub

     ' método close
    Public Sub close()
        Console.WriteLine("destroy personne {0}", Me.ToString)
    End Sub

End Class

A classe de teste está em [NunitTestPersonne-1.vb]:

Imports System
Imports NUnit.Framework

<TestFixture()> _
 Public Class NunitTestPersonne

     ' objeto testado
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
         ' cria-se uma instância de Pessoa
        personne1 = New Personne
         ' log
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' log na tela
        Console.WriteLine("début test")
         ' inicialização de pessoa1
        With personne1
            .nom = "paul"
            .age = 10
        End With
         ' testes
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
         ' log de tela
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
         ' acompanhamento
        Console.WriteLine("teardown test")
    End Sub

End Class

Há vários pontos a serem observados:

  • os métodos possuem atributos como <Setup()>, <TearDown()>, ...
  • para que esses atributos sejam reconhecidos, é necessário que:
    • o projeto faça referência ao assembly [nunit.framework.dll]
    • a classe de teste importe o namespace [NUnit.Framework]

A referência é obtida clicando com o botão direito do mouse em [References] no Explorador de Soluções:

Image

O assembly [nunit.framework.dll] deve constar na lista exibida se a instalação do [Nunit] tiver ocorrido sem problemas. Basta clicar duas vezes no assembly para adicioná-lo ao projeto:

Image

Feito isso, a classe de teste [NunitTestPersonne] deve importar o namespace [NUnit.Framework]:

Imports NUnit.Framework

Os atributos da classe de teste [NunitTestPersonne] devem, então, ser reconhecidos.

  • o atributo <Test()> indica um método a ser testado
  • o atributo <Setup()> indica o método a ser executado antes de cada método testado
  • o atributo <TearDown()> indica o método a ser executado após cada método testado
  • o método Assert.AreEqual permite testar a igualdade entre dois entités.Il; existem muitos outros métodos do tipo Assert.xx.
  • O utilitário NUnit interrompe a execução de um método testado assim que um método [Assert] falhar e exibe uma mensagem de erro. Caso contrário, exibe uma mensagem de sucesso.

Vamos configurar nosso projeto para que ele gere um DLL:

Image

O DLL gerado será chamado de [nunit-demos-1.dll] e será colocado, por padrão, na pasta [bin] do projeto. Vamos gerar nosso projeto. Obtemos na pasta [bin]:

Image

Agora, vamos executar o utilitário de teste gráfico Nunit. Vale lembrar que ele está localizado em <Nunit>\bin e se chama [nunit-gui.exe]. <Nunit> refere-se à pasta de instalação do [Nunit]. Aparece a seguinte interface:

Image

Vamos usar a opção de menu [File/Open] para carregar o DLL e o [nunit-demos-1.dll] do nosso projeto:

Image

O [Nunit] é capaz de detectar automaticamente as classes de teste presentes no DLL carregado. Nesse caso, ele localiza a classe [NunitTestPersonne]. Em seguida, exibe todos os métodos da classe que possuem o atributo <Test()>. O botão [Run] permite executar os testes no objeto selecionado. Se for a classe [NunitTestPersonne], todos os métodos exibidos serão testados. É possível solicitar o teste de um método específico selecionando-o e solicitando sua execução por meio de [Run]. Vamos solicitar a execução da classe:

Image

Um teste bem-sucedido em um método é indicado por um ponto verde ao lado do método na janela à esquerda. Um teste com falha é indicado por um ponto vermelho.

A janela [Console.Out], à direita, mostra as exibições na tela geradas pelos métodos testados. Aqui, quisemos acompanhar o andamento de um teste:

1
2
3
4
setup test
début test
fin test
teardown test
  • a linha 1 mostra que o método de atributo <Setup()> é executado antes do teste
  • as linhas 2 e 3 são geradas pelo método [demo] testado (veja o código acima)
  • a linha 4 mostra que o método de atributo <TearDown()> é executado após o teste

3.5. Onde encontrar o SGBD e do Firebird?

O site principal do Firebird é [http://firebird.sourceforge.net/]. A página de downloads oferece os seguintes links (abril de 2005):

Image

Devemos baixar os seguintes arquivos:

firebird-win32
o SGBD para Windows
firebird-net-provider
uma biblioteca de classes para aplicativos .NET que permite acessar o SGBD sem passar por um driver ODBC.
firebird-ODBC-driver
o driver ODBC do Firebird

Instale esses elementos. O SGBD é instalado em uma pasta cujo conteúdo é semelhante ao seguinte:

Image

Os binários estão na pasta [bin]:

Image

fbguard.exe
permite iniciar/parar o SGBD
isql.exe
cliente de linha que permite gerenciar bancos de dados

Observe que, por padrão, o administrador do SGBD se chama [SYSDBA] e sua senha é [masterkey]. Foram instalados menus no [Démarrer]:

Image

A opção [Firebird Guardian] permite iniciar/encerrar o SGBD. Após o início, o ícone do SGBD permanece na barra de tarefas do Windows:

Para criar e utilizar bancos de dados Firebird com o cliente de linha de comando [isql.exe], é necessário consultar a documentação fornecida com o produto na pasta [doc]. Uma maneira mais rápida de trabalhar com o Firebird é utilizar um cliente gráfico. Um exemplo desse tipo de cliente é o IB-Expert, descrito no parágrafo a seguir.

3.6. Onde encontrar o IB- Expert?

O site principal do Firebird é [http://www.ibexpert.com/]. A página de downloads oferece os seguintes links:

Image

Escolha a versão gratuita [Personal Edition]. Após baixá-la e instalá-la, você terá uma pasta semelhante à seguinte:

Image

O executável é o [ibexpert.exe]. Normalmente, há um atalho disponível no menu [Démarrer]:

Image

Uma vez iniciado, o IBExpert exibe a seguinte janela:

Image

Vamos usar a opção [Database/Create Database] para criar um banco de dados:

Image

Server
pode ser [local] ou [remote]. Aqui, nosso servidor está na mesma máquina que o [IBExpert]. Portanto, escolhemos [local]
Database
utilize o botão do tipo [dossier] do menu suspenso para indicar o arquivo do banco de dados. O Firebird armazena todo o banco de dados em um único arquivo. Essa é uma de suas vantagens. O banco de dados é transferido de um computador para outro simplesmente copiando o arquivo. O sufixo [.gdb] é adicionado automaticamente.
Username
SYSDBA é o administrador padrão das distribuições atuais do Firebird
Password
masterkey é a senha do administrador SYSDBA das distribuições atuais do Firebird
Dialect
o dialeto SQL a ser utilizado
Register Database
se a caixa estiver marcada, IBExpert exibirá um link para o banco de dados criado após sua criação

Se, ao clicar no botão de criação [OK], você receber o seguinte aviso:

Image

isso significa que você não iniciou o Firebird. Inicie-o. Aparece uma nova janela:

Image

Server version
O [IBExpert] é capaz de gerenciar diferentes SGBD derivados do Interbase. Selecione a versão do Firebird que você instalou

Image

Depois que essa nova janela for validada pelo [Register], obtém-se o seguinte resultado:

Image

Para acessar o banco de dados criado, basta clicar duas vezes no link correspondente. O IBExpert exibe então uma árvore de navegação que dá acesso às propriedades do banco de dados:

Image

Vamos criar uma tabela. Clique com o botão direito do mouse em [Tables] e selecione a opção [New Table]. Aparece a janela de definição das propriedades da tabela:

Vamos começar atribuindo o nome [ARTICLES] à tabela, utilizando o campo de entrada [1]:

Usemos o campo de entrada [2] para definir uma chave primária [ID]:

Um campo é definido como chave primária ao clicar duas vezes no campo [PK] (Primary Key) do campo. Vamos adicionar campos usando o botão [3]:

Image

Enquanto não tivermos “compilado” nossa definição, a tabela não será criada. Usemos o botão [Compile] acima para concluir a definição da tabela. O IBExpert prepara as consultas SQL para a geração da tabela e solicita confirmação:

Image

Curiosamente, o IBExpert exibe as consultas SQL que executou. Isso permite o aprendizado tanto da linguagem SQL quanto do dialeto SQL, que pode ser proprietário. O botão [Commit] permite confirmar a transação em andamento, enquanto o botão [Rollback] permite cancelá-la. Aqui, a transação é aceita por meio de [Commit]. Feito isso, IBExpert adiciona a tabela criada à estrutura da nossa base de dados:

Image

Ao clicar duas vezes na tabela, temos acesso às suas propriedades:

Image

O painel [Constraints] permite adicionar novas restrições de integridade à tabela. Vamos abri-lo:

Image

Encontramos a restrição de chave primária que criamos. É possível adicionar outras restrições:

  • chaves estrangeiras [Foreign Keys]
  • restrições de integridade de campos [Checks]
  • restrições de exclusividade de campos [Uniques]

Observemos que:

  • os campos [ID, PRIX, STOCKACTUEL, STOKMINIMUM] devem ser >0
  • o campo [NOM] deve ser diferente de vazio e único

Abramos o painel [Checks] e cliquemos com o botão direito do mouse na área de definição de restrições para adicionar uma nova restrição:

Image

Vamos definir as restrições desejadas:

Image

Observe-se acima que a restrição [NOM<>''] utiliza dois apóstrofos e não aspas. Vamos compilar essas restrições com o botão [Compile] acima:

Image

Mais uma vez, IBExpert demonstra clareza ao indicar as consultas SQL que foram executadas. Passemos agora ao painel [Constraints/Uniques] para indicar que o nome deve ser único:

Image

Vamos definir a restrição:

Image

Vamos compilá-la. Feito isso, abramos o painel [DDL] da tabela [ARTICLES]:

Image

Esse painel fornece o código SQL para a geração da tabela com todas as suas restrições. É possível salvar esse código em um script para executá-lo posteriormente:

SET SQL DIALECT 3;
SET NAMES NONE;
CREATE TABLE ARTICLES (
    ID            INTEGER NOT NULL,
    NOM           VARCHAR(20) NOT NULL,
    PRIX          DOUBLE PRECISION NOT NULL,
    STOCKACTUEL   INTEGER NOT NULL,
    STOCKMINIMUM  INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);

Agora é hora de inserir dados na tabela [ARTICLES]. Para isso, vamos usar seu painel [Data]:

Image

Os dados são inseridos clicando duas vezes nos campos de entrada de cada linha da tabela. Uma nova linha é adicionada com o botão [+], e uma linha é excluída com o botão [-]. Essas operações são realizadas em uma transação que é validada pelo botão [Commit Transaction]. Sem essa validação, os dados serão perdidos.

O IBExpert permite emitir consultas SQL por meio da opção [Tools/SQL Editor] ou [F12]. Assim, tem-se acesso a um editor avançado de consultas SQL, com o qual é possível executar consultas. Elas são armazenadas, permitindo retornar a uma consulta já executada. Veja um exemplo:

Image

Executamos a consulta SQL usando o botão [Execute] acima. Obtemos o seguinte resultado:

Image

Vamos encerrar nossas demonstrações por aqui. A combinação IBExpert-Firebird se mostra excelente para o aprendizado de bancos de dados.

3.7. Instalar e usar um driver ODBC para [Firebird]

3.8. Instalar o driver

O link [firebird-odbc-provider] na página de downloads do [Firebird] (parágrafo 3.5) dá acesso a um driver ODBC. Depois de instalado, ele aparece na lista de drivers ODBC instalados.

3.9. Criar uma fonte ODBC

  • Execute a ferramenta [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • aparece a seguinte janela:

Image

  • Adicionemos [Add], uma nova fonte de dados do sistema (painel [System DSN]), que associaremos ao banco de dados Firebird que criamos no parágrafo anterior:

Image

  • Primeiro, precisamos especificar o driver ODBC a ser utilizado. Acima, escolhemos o driver para o Firebird e, em seguida, clicamos em [Terminer]. O assistente do driver ODBC do Firebird assume então o controle:

Image

  • preenchemos os diversos campos:

Image

DSN [demo-odbc-firebird]
o nome DSN da fonte ODBC — pode ser qualquer um
Database [D:\..\DBARTICLES.GDB]
o nome do arquivo BD do Firebird a ser processado — use [Browse] para indicar o arquivo .gbd correspondente
Database Account [SYSDBA]
identificador a ser usado para se conectar ao banco de dados
Password [masterkey]
a senha associada a esse identificador

O botão [Test connection] permite verificar a validade das informações fornecidas. Antes de usá-lo, execute o SGBD [Firebird]:

Image

  • confirme o assistente ODBC, executando o [OK] quantas vezes forem necessárias

3.10. Teste a fonte ODBC

Existem várias maneiras de verificar se uma fonte ODBC está funcionando corretamente. Aqui, vamos usar o Excel:

Image

  • utilizemos a opção [Données -> Données externes -> Créer une requête] acima. Aparece a primeira janela de um assistente de definição da fonte de dados. O painel [Bases de données] lista as fontes ODBC atualmente definidas no computador:

Image

  • Selecione a fonte ODBC [odbc-firebird-articles] que acabamos de criar e avance para a próxima etapa com [OK]:

Image

  • esta janela lista as tabelas e colunas disponíveis na fonte ODBC. Selecionamos toda a tabela:

Image

  • Vamos para a próxima etapa com [Suivant]:

Image

  • esta etapa nos permite filtrar os dados. Aqui, não aplicamos nenhum filtro e passamos para a próxima etapa:

Image

  • essa etapa nos permite ordenar os dados. Não faremos isso e passamos para a próxima etapa:

Image

  • A última etapa nos pergunta o que queremos fazer com os dados. Aqui, os enviamos para o Excel:

Image

  • Aqui, o Excel pergunta onde queremos inserir os dados recuperados. Nós os colocamos na planilha ativa, a partir da célula A1. Os dados são então recuperados na planilha do Excel:

Image

Existem outras maneiras de testar a validade de uma fonte ODBC. Por exemplo, é possível utilizar o pacote gratuito OpenOffice, disponível no URL [http://www.openoffice.org]. Aqui está um exemplo com um texto OpenOffice:

  • Um ícone no lado esquerdo da janela do OpenOffice dá acesso às fontes de dados. A interface muda então para exibir uma área de gerenciamento das fontes de dados:

Image

  • uma fonte de dados está predefinida: a fonte [Bibliography]. Um clique com o botão direito na área de fontes de dados permite criar uma nova fonte com a opção [Gérer les sources de données]:

Image

  • Um assistente [Gestion des sources de données] permite criar fontes de dados. Ao clicar com o botão direito do mouse na área de fontes de dados, é possível criar uma nova fonte com a opção [Nouvelle source de données]:

Image

Nom [odbc-firebird-articles]
qualquer nome. Aqui, utilizamos o nome da fonte ODBC
Type de BD [odbc]
OpenOffice é capaz de lidar com diferentes tipos de BD por meio de JDBC, ODBC ou diretamente (MySQL, Dbase, ...). Para o nosso exemplo, é preciso escolher o ODBC
URL de la source de données
o botão à direita do campo de entrada nos dá acesso à lista de fontes ODBC da máquina. Escolhemos a fonte [odbc-firebird-articles]
  • passamos para o painel [ODBC] para definir o usuário com cuja identidade será feita a conexão:

Image

Nom d'utilisateur [sysdba]
o proprietário da fonte ODBC
  • passamos para o painel [Tables]. É solicitada a senha. Aqui, ela é [masterkey]:

Image

  • executamos [OK]. A lista de tabelas da fonte ODBC é então exibida:

Image

  • é possível definir as tabelas que serão apresentadas no documento [OpenOffice]. Aqui, escolhemos a tabela [ARTICLES] e passamos para [OK]. A definição da fonte de dados está concluída. Ela aparece, então, na lista de fontes de dados do documento ativo:

Image

  • é possível arrastar com o mouse a tabela [ARTICLES] acima para dentro do texto [OpenOffice]:

Image

3.11. Cadeia de conexão de uma fonte ODBC Firebird

  • Inicie o Visual Studio e acesse o explorador de servidores [Affichage/Explorateur de serveurs]:
  • clique com o botão direito do mouse em [Connexion de données] e selecione a opção [Ajouter une connexion]:

Image

  • no painel [Provider], indique que deseja usar uma fonte ODBC (veja acima) e, em seguida, passe para o painel [Connection]:

Image

Use data source name
[demo-odbc-firebird]
selecione a fonte ODBC no menu suspenso. A fonte recém-criada deve aparecer. Se necessário, use [Refresh] para atualizar a lista de fontes ODBC.
User name [SYSDBA]
identificador a ser usado para se conectar ao banco de dados
Password [masterkey]
a senha associada a esse identificador

Mais uma vez, um botão [Test Connection] permite verificar a validade das informações:

Image

  • confirme o assistente com [OK]. A fonte de dados aparece então na janela [Explorateur de serveurs] do Visual Studio:

Image

  • Ao clicar duas vezes na tabela [ARTICLES], tem-se acesso aos dados da tabela:

Image

  • Se clicarmos com o botão direito do mouse no link [Firebird Server D:\temp\... ] e selecionarmos a opção [Propriétés], teremos acesso às propriedades da conexão:

Image

  • A string de conexão [ConnectString] é uma propriedade importante a se conhecer, pois o código .NET precisa dela para estabelecer uma conexão com o banco de dados. Aqui, essa string de conexão é:
Provider=MSDASQL.1;Persist Security Info=False;User ID=SYSDBA;Data Source=demo-odbc-firebird;Extended Properties="DSN=demo-odbc-firebird;Driver=Firebird/InterBase(r) driver;Dbname=D:\temp\07-04-05\firebird\DBARTICLES.GDB;CHARSET=NONE;UID=SYSDBA"

Muitos elementos dessa cadeia de conexão possuem valores padrão. Podemos nos contentar com a seguinte cadeia de conexão:

"DSN=demo-odbc-firebird;UID=SYSDBA;PASSWORD=masterkey"

Isso encerra nossa apresentação do driver ODBC do [Firebird].

3.12. Onde encontrar o SGBD MSDE?

O MSDE é a versão gratuita do servidor SGBD e SQL da Microsoft. Ele pode ser encontrado no URL e [http://www.microsoft.com/sql/msde/downloads/download.asp]:

Baixe o arquivo de instalação e instale o SGBD clicando duas vezes no executável baixado. Uma janela solicitará a pasta de instalação. O título é enganador. Trata-se de uma pasta temporária que poderá ser excluída posteriormente:

Leia atentamente o arquivo [ReadmeMSDE2000A.htm]. O programa de instalação é o [setup.exe] mencionado acima. Ele é executado na linha de comando para que seja possível passar parâmetros a ele. Os principais são os seguintes:

Paramètre
Descrição

SAPWD="MotDePasseRenforcé"
Especifica uma senha reforçada a ser atribuída ao login de administrador “sa”.

INSTANCENAME="NomInstance"
Define o nome da instância. Se INSTANCENAME não for especificado, o programa de instalação instalará uma instância padrão.

Outros parâmetros frequentemente utilizados para personalizar uma instalação são:

Paramètre
Descrição

DISABLENETWORKPROTOCOLS=n
Especifica se a instância aceitará conexões de rede provenientes de aplicativos executados em outros computadores. Por padrão, ou se você especificar DISABLENTWORKPROTOCOL=1, o programa de instalação configura a instância para recusar conexões de rede. Especifique DISABLENETWORKPROTOCOLS=0 para ativar as conexões de rede.
SECURITYMODE=SQL
Especifica que a instância deve ser instalada no modo misto, ou seja, que a instância suporta a autenticação do Windows e a autenticação SQL para as conexões

DATADIR="chemin_dossier_données"
Especifica a pasta na qual o instalador instala os bancos de dados do sistema, os registros de erros e os scripts de instalação. O valor especificado para chemin_dossier_données deve terminar com uma barra invertida (\). Para uma instância padrão, o programa de instalação acrescenta MSSQL\ ao valor especificado. Para uma instância nomeada, o programa de instalação adiciona MSSQL$NomInstance\, onde NomInstance é o valor especificado por meio do parâmetro INSTANCENAME. O programa de instalação cria três pastas no local especificado: uma pasta Data, uma pasta Log e uma pasta Script.

TARGETDIR="chemin_dossier_exécutables"
Especifica a pasta na qual o programa de instalação instala os arquivos executáveis do MSDE 2000. O valor especificado para o chemin_dossier_exécutables deve terminar com uma barra invertida (\). Para uma instância padrão, o programa de instalação adiciona MSSQL\Binn ao valor especificado. Para uma instância nomeada, o programa de instalação adiciona MSSQL$NomInstance\Binn, onde NomInstance é o valor especificado por meio do parâmetro INSTANCENAME.

Após ler as recomendações de instalação acima, vamos para a pasta onde os arquivos de instalação foram extraídos e executamos o seguinte comando DOS (uso do SGBD sem rede):

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty"
  • INSTANCENAME="MSDE140405" — esse será o nome da nossa instância MSDE. É possível instalar várias instâncias.
  • SECURITYMODE=SQL — o SGBD funcionará no modo de autenticação mista. Assim, será possível conectar-se ao MSDE de duas maneiras:
    • com uma conta de administrador do Windows
    • com uma conta MSDE — nesse caso, serão solicitados um nome de usuário e uma senha. Esse será o modo a ser utilizado em um programa que se conecte a um banco de dados da instância SGBD.
  • SAPWD="azerty" — essa será a senha do usuário da conta SGBD. O usuário [sa] possui direitos de administração sobre a conta SGBD.

Para utilizar o SGBD em rede, teria sido executado o seguinte comando:

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty" DISABLENETWORKPROTOCOLS=0

O programa de instalação é minimalista e é concluído sem exibir nenhuma mensagem... No entanto, é possível verificar que o SGBD foi instalado por meio da opção [Menu Démarrer -> Panneau de configuration -> Ajouter et supprimer des programmes]:

Image

A instalação ocorre normalmente em C:\Arquivos de Programas\Microsoft SQL Server\MSSQL$nomInstance:

Na pasta [LOG] da pasta de instalação, encontra-se o arquivo de logs da fase de instalação do SGBD. Nele há uma informação importante: o nome da instância MSDE:

2005-04-14 08:14:29.37 spid4     Le nom du serveur est «PORTABLE1_TAHE\MSDE140405».

É importante saber esse nome, pois todos os clientes do SGBD precisarão dele. Na ausência desses logs, é possível encontrar o nome de um servidor MSDE, que é [machine_windows\nom_instance_MSDE]. O nome da máquina está disponível em vários locais. Por exemplo:

  • clique com o botão direito do mouse em [poste de travail] na área de trabalho, selecione a opção [propriétés] e, em seguida, o painel [Nom de l'ordinateur]:

Image

Ainda não se sabe como iniciar o servidor MSDE. Normalmente, um atalho foi colocado em [Démarrer/Démarrage].

Image

Ao verificar as propriedades desse atalho, percebe-se que o destino é o seguinte:

"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe" /n

Na pasta [ C:\Program Files\Microsoft SQL Server], existem subpastas:

Image

  • MSSQL$MSDE140405 é a pasta da instância MSDE que acabamos de instalar.
  • MSSQL é a pasta de uma instância anterior, MSDE. Como ela não tem nome, chamamos-a de instância padrão.
  • A pasta [80] é uma pasta comum às diferentes instâncias instaladas de MSDE. O destino [sqlmangr.exe] do atalho que inicia uma instância de MSDE está na pasta [ 80\Tools\Binn].
Vamos iniciar o MSDE por meio do atalho do [Démarrer -> Programmes -> Démarrage]. Praticamente nada acontece, exceto que um ícone foi exibido na barra de estado:
Vamos clicar duas vezes nesse ícone:
O servidor MSDE proposto aqui é o servidor padrão
[PORTABLE1_TAHE] presente na máquina. Vale lembrar que
o servidor MSDE que instalamos se chama
[PORTABLE1_TAHE\MSDE140405]. Alteramos o
nome do servidor no campo apropriado:
Se tudo correr bem, a instância [MSDE140405] deve ser iniciada:

É possível fazer uma primeira verificação. Na mesma pasta em que se encontra o [sqlmangr.exe], há um cliente de console [osql.exe] que permite conectar-se a um servidor MSDE e emitir comandos SQL. Durante a instalação, atribuímos a senha [azerty] ao administrador [sa] do nosso servidor MSDE. Por meio do cliente de console, vamos nos conectar ao servidor recém-instalado. Ao executar o comando [osql -?], é exibida a lista de parâmetros possíveis:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql -?
utilisation : osql
  [-U ID de connexion]
  [-P mot de passe]
  [-S serveur]
  [-H nom de l'hôte]
  [-E connexion approuvée]
  [-d utiliser le nom de la base de données]
  [-l limite du temps de connexion]
  [-t limite du temps de requête]
  [-h en-têtes]
  [-s séparateur de colonnes]
  [-w largeur de colonne]
  [-a taille du paquet]
  [-e entrée d'écho]
  [-I Activer les identificateurs marqués]
  [-L liste des serveurs]
  [-c fin de cmd]           [-D nom ODBC DSN]
  [-q "requête cmdline"]
  [-Q "requête cmdline" et quitter]
  [-n supprimer la numérotation]
  [-m niveau d'erreur]
  [-r msgs vers stderr]
  [-V severitylevel]
  [-i fichier d'entrée]
  [-o fichier de sortie]
  [-p imprimer les statistiques]  [-b abandon du lot d'instruction après erreur]

  [-X[1] désactive les commandes [et quitte avec un avertissement]]
  [-O utiliser le comportement Old ISQL désactive les éléments suivants]
      <EOF> traitement par lot d'instructions
      Mise à l'échelle automatique de la largeur de la console
      Messages larges
      niveau d'erreur par défaut de  -1 au lieu de 1
  [-? description de la syntaxe]

Iniciemos o servidor [MSDE140405] conforme indicado acima e, em seguida, em uma janela do DOS, usemos o [osql] para nos conectarmos ao servidor [portable1_tahe\msde140405] com a identidade [sa, azerty]:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL.EXE -U sa -S portable1_tahe\msde140405 -P azerty
1>

O prompt [1>] indica que o [osql] está aguardando um comando. Estamos conectados corretamente. Para utilizar corretamente o [osql], é necessário consultar a documentação do MSDE. Ela está disponível em diversos formatos (PDF, HTMLHelp, etc.). Essa documentação é bastante extensa. Em geral, é preferível usar um cliente gráfico para trabalhar com um banco de dados MSDE. É isso que será proposto um pouco mais adiante. Para sair do [osql], usa-se o comando [exit]:

1> exit

Veremos agora como criar bancos de dados no servidor MSDE recém-instalado. Antes disso, apresentaremos rapidamente uma ferramenta [MSDE Manager] que permite alterar o modo de autenticação de um servidor MSDE. De fato, se instalarmos esse servidor utilizando as opções padrão de instalação, o modo de autenticação do servidor será do tipo [authentification windows]. Esse tipo de autenticação permite apenas usuários identificados no computador Windows (eventualmente por meio de um domínio). Para um programa VB.NET que deseja se conectar a um banco de dados para explorar seu conteúdo, esse modo se mostra pouco prático. A situação é ainda pior para aplicativos Java que acessam o SGBD por meio de um driver JDBC. Nesse caso, é preferível a autenticação mista, que, além da autenticação anterior, aceita pares (login, senha) declarados no SGBD. A ferramenta [MSDE Manager] permite realizar essa operação.

3.13. Onde encontrar o MSDE Manager?

O [MSDE Manager] é uma ferramenta de administração do SGBD e do MSDE. Ele pode ser encontrado no URL e no [http://www.valesoftware.com/].

Baixamos a versão gratuita seguindo o link acima:

Image

Image

A versão de avaliação tem validade limitada. Isso é adequado, pois a utilizaremos apenas para uma única ação bem específica. Baixamos e instalamos o produto. Um atalho é criado na área de trabalho. Nós o utilizamos para iniciar o MSDE Manager. Após passar pelas primeiras janelas, chegamos a esta:

Image

  • inicie o servidor MSDE140405
  • você deve estar conectado ao computador Windows como administrador
  • clique com o botão direito do mouse no link [SQL Server Group] e selecione a opção [New SQL Server Registration]:

Image

Image

Aparece a seguinte página de propriedades:

Server Name 
portable1_tahe\msde140405 — nome da instância MSDE à qual você deseja se conectar
Connection 
Autenticação do Windows — esse modo está sempre disponível e permite que um administrador do computador Windows se conecte ao servidor MSDE
Server Group 
Selecione o único grupo de servidores apresentado: [SQL Server Group]

Após clicar em [OK], a árvore de propriedades do servidor MSDE140405 é exibida:

Image

Poderíamos começar a criar bancos de dados. Não faremos isso, pois utilizaremos outro produto, um clone do produto IBExpert já analisado. Vamos simplesmente alterar o modo de autenticação do MSDE. Clique com o botão direito do mouse no servidor MSDE140405 acima e selecione a opção [Design]:

Image

Aparece a seguinte janela de informações:

Image

O painel [General] fornece informações sobre o servidor MSDE ao qual estamos conectados. A página [Security] é a que nos interessa:

Image

É preciso verificar aqui se o modo de autenticação do MSDE é, de fato, o [SQL Server and Windows]. Assim, será possível conectar-se ao MSDE de duas maneiras:

  • com uma conta de administrador do Windows — foi o que foi feito aqui
  • com uma conta MSDE — nesse caso, serão solicitados um nome de usuário e uma senha. Esse será o modo a ser utilizado em um programa que se conecte a um banco de dados do SGBD.

Confirmamos essa escolha e saímos do MSDE Manager. Não precisaremos mais dele. Para criar bancos de dados MSDE, vamos usar outra ferramenta: o EMS MS SQL Manager.

3.14. Onde encontrar o EMS , MS e SQL Manager?

O EMS MS SQL Manager é uma ferramenta gráfica que permite trabalhar com o SGBD Microsoft SQL Server e, portanto, com o MSDE. É muito semelhante à ferramenta IB-Expert descrita anteriormente. Está disponível na versão URL [http://sqlmanager.net/] (abril de 2005):

Image

O site oferece gerenciadores de administração para vários SGBD. Acesse o link [MS SQL Manager]:

Image

Acima, escolhemos a versão simplificada do produto. Baixe-a e instale-a. Você terá uma pasta semelhante à seguinte:

Image

O executável é o [MsManager.exe]. Normalmente, há um atalho disponível no menu [Démarrer]:

Image

Uma vez iniciado, o MS SQL Manager exibe a seguinte janela:

Image

Vamos começar registrando o servidor MSDE no qual queremos trabalhar com a opção [Database/Register Host]:

Comentários:

  • etapa 1 — como já foi mencionado, o MSDE aceita dois modos de autenticação: Windows e SQL Server. No modo [windows], são utilizadas as contas do computador Windows. No modo [SQL Server], são utilizadas as contas do SGBD. O [SQL Server] pode operar no modo [Windows] ou no modo misto [Windows, SQL Server]. O modo de autenticação [Windows] ainda existe. O modo de autenticação misto, por sua vez, nem sempre está ativo. Vimos como ativá-lo com o MSDE Manager. Acima, a conexão foi feita com uma conta de administrador.
  • Etapa 2 – Após a autenticação bem-sucedida, são apresentados os bancos de dados padrão do MSDE. Acima, todos foram selecionados.

Comentários:

  • Etapa 3: é possível selecionar opções de administração das bases de dados escolhidas. Aqui, as opções sugeridas por padrão foram mantidas.
  • Etapa 4: registramos o servidor MSDE com o botão [Register]

O servidor MSDE aparece então no explorador de bancos de dados:

Image

Vamos usar a opção [Database/Create Database] para criar um banco de dados:

Etapa 2:

Quando esta página de informações for exibida, o banco de dados [dbarticles] terá sido criado. É possível verificar isso com o botão [Test Connect]. No campo [Database alias], pode-se inserir o que se desejar. Aqui, indicamos:

  • o nome do banco de dados
  • o nome do servidor MSDE no qual ela está localizada
  • o usuário [admarticles] que será o proprietário desse banco de dados e sua senha [mdparticles]. Esse usuário ainda não foi criado, mas será em breve.

Etapa 3:

  • com o botão [Register], registramos o novo banco de dados no [MS SQL Server ]. Após o registro, o banco de dados [admarticles] aparece na lista de bancos de dados. Ao clicar duas vezes nele, é exibida a árvore de suas propriedades.

Vamos criar um novo login de acesso que será administrador do banco de dados [admarticles].

  • Selecione a opção [Tools/Login manager]:

Image

  • percebe-se que já existem duas contas definidas:
    • [BUILTIN\Administrateurs]: esta conta utiliza autenticação do Windows. Ela representa os administradores da máquina Windows na qual está instalado o servidor MSDE
    • sa: este login utiliza autenticação SQL. Por padrão, trata-se do administrador do servidor MSDE. Vale lembrar que, neste caso, conforme configurado na instalação do SGBD MSDE, sua senha é [azerty].
  • Clique com o botão direito do mouse na área de logins e adicione um novo login:
  • Aparece uma janela de entrada de dados onde definimos as características do novo login:

Image

  • Nome de login: admarticles
  • Senha: mdparticles
  • Após clicar no botão [OK], o MS Manager exibe as consultas SQL que serão executadas:

Image

A linguagem SQL apresentada acima é Transact-SQL, a linguagem SQL do MSDE. Solicitamos a execução desse código pelo [OK]

  • o novo login é inserido na lista de logins:

Image

  • na janela de propriedades do banco de dados [dbarticles], cliquemos com o botão direito do mouse em [users] para criar um usuário com direitos sobre o banco de dados [dbarticles]:

Image

  • aparece então a seguinte janela:

Image

  • No menu suspenso [Login], temos a lista de logins existentes. Selecionamos o login [admarticles].
  • Em [Name], insira um nome de usuário. Vários usuários podem estar associados ao mesmo login. Portanto, em MSDE, a criação de um usuário passa primeiro pela criação de um login. O painel [User] fica da seguinte forma:

Image

  • Passemos agora ao painel [Member Of], que nos permitirá definir os direitos do nosso usuário:

Image

  • Não sou um usuário habitual do MSDE e desconheço o significado exato de cada uma das funções propostas na janela à esquerda. A função [db_owner] é tentadora (owner = proprietário). Portanto, vamos selecioná-la para o nosso usuário [admarticles]:

Image

  • confirmamos nossas escolhas clicando no botão [Compile] acima. As consultas SQL apresentadas na execução são as seguintes:

Image

  • nós as compilamos por meio de [OK]. Agora temos um usuário do banco de dados [dbarticles]:

Image

  • Vamos criar agora uma tabela. Clique com o botão direito do mouse em [Tables] e selecione a opção [New Table]. Aparecerá a janela de definição das propriedades da tabela:

Image

  • Vamos começar atribuindo o nome [ARTICLES] à tabela, utilizando o campo de entrada [Table Name]. Em seguida, passemos para o painel [Fields]:

Image

  • definamos os seguintes campos:

Image

Enquanto não tivermos “compilado” nossa definição, a tabela não será criada. Vamos usar o botão [Compile] acima para concluir a definição da tabela. O [MS SQL Manager] prepara as consultas SQL para a geração da tabela e solicita confirmação:

Image

Curiosamente, o [MS SQL Manager] exibe as consultas SQL que foram executadas. Isso permite o aprendizado da linguagem Transact-SQL. O botão [Commit] permite confirmar a transação em andamento, enquanto o [Rollback] permite cancelá-la. Aqui, aceitamos a transação por meio de [Commit]. Feito isso, [MS SQL Manager] adiciona a tabela criada à estrutura da nossa base de dados:

Image

Ao clicar duas vezes na tabela, temos acesso às suas propriedades:

Image

O painel [Checks] permite adicionar novas restrições de integridade à tabela. Para a tabela [ARTICLES], vamos criar as seguintes restrições:

  • os campos [ID, PRIX, STOCKACTUEL, STOKMINIMUM] devem ser >=0
  • o campo [NOM] deve ser diferente de vazio

No painel [Checks], clique com o botão direito do mouse na área em branco para adicionar uma nova restrição [New check]:

Image

  • A tela de edição das restrições se apresenta da seguinte forma:

Image

Name: nome da restrição

Tabela: tabela na qual a restrição é aplicada

Definição: expressão da restrição

A restrição é compilada pelo botão [Compile] acima.

  • Mais uma vez, o [MS SQL Manager] apresenta os comandos SQL executados:

Image

  • elas são validadas com o botão [Commit] (não representado). Se voltarmos ao painel [Checks] da tabela [ARTICLES], a nova restrição aparece:

Image

  • Definimos da mesma forma as demais restrições para obter, por fim, a seguinte lista:

Image

Feito isso, abramos o painel [DDL] da tabela [ARTICLES]:

Image

Esse painel fornece o código Transact-SQL para a geração da tabela com todas as suas restrições. É possível salvar esse código em um script para executá-lo posteriormente:

CREATE TABLE [ARTICLES] (
  [id] int NOT NULL,
  [nom] varchar(20) COLLATE French_CI_AS NOT NULL,
  [prix] float(53) NOT NULL,
  [stockactuel] int NOT NULL,
  [stockminimum] int NOT NULL,
  CONSTRAINT [ARTICLES_uq] UNIQUE ([nom]),
  PRIMARY KEY ([id]),
  CONSTRAINT [ARTICLES_ck_id] CHECK ([id] > 0),
  CONSTRAINT [ARTICLES_ck_nom] CHECK ([nom] <> ''),
  CONSTRAINT [ARTICLES_ck_prix] CHECK ([prix] >= 0),
  CONSTRAINT [ARTICLES_ck_stockactuel] CHECK ([stockactuel] >= 0),
  CONSTRAINT [ARTICLES_ck_stockminimum] CHECK ([stockminimum] >= 0)
)
ON [PRIMARY]
GO

Agora é hora de inserir alguns dados na tabela [ARTICLES]. Para isso, vamos usar seu painel [Data]:

Image

O botão [+] permite adicionar uma linha, enquanto o botão [-] permite excluí-la. Os dados são inseridos simplesmente digitando-os nos campos de cada linha da tabela. Uma linha é validada pelo botão [Post Edit] abaixo:

Image

Vamos criar dois itens:

Image

O [MS SQL Manager] permite emitir consultas SQL por meio da opção [Tools/Show SQL Editor] ou [F12]. Assim, temos acesso a um editor avançado de consultas SQL, com o qual é possível executar consultas. Elas são armazenadas, permitindo que se retorne a uma consulta já executada. Veja um exemplo:

Image

Executamos a consulta SQL usando o botão [Execute] acima. Obtemos o seguinte resultado:

Image

Vamos encerrar nossas demonstrações por aqui. O par [MS SQL Manager - MSDE], assim como o par [IBExpert - Firebird], também se mostra excelente para o aprendizado de bancos de dados.

3.15. Criar uma fonte ODBC [MSDE]

O driver ODBC para o SQL Server normalmente vem instalado por padrão nos computadores com Windows.

  • Executar a ferramenta [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • aparece a seguinte janela:

Image

  • Adicionemos [Add] como uma nova fonte de dados do sistema (painel [System DSN]), que associaremos ao banco de dados MSDE que criamos no parágrafo anterior:

Image

  • primeiro, precisamos especificar o driver ODBC a ser utilizado. Acima, escolhemos o driver para [SQL Server] e, em seguida, selecionamos [Terminer]. O assistente do driver ODBC de [SQL Server] assume então o controle:

Image

  • preenchemos os diversos campos:
Nom [odbc-msde-articles]
o nome da fonte ODBC — pode ser qualquer um
Description
pode ser qualquer um
Serveur SQLMap
portable_tahe\msde140405
nome do servidor MSDE que contém os dados da fonte ODBC
  • criamos o [Suivant] para fornecer novas informações:

Image

  • preenchemos os diversos campos:
Authentification SQL Server
indicamos que nos conectaremos à fonte de dados ODBC com um nome de usuário registrado no servidor MSDE
ID de connexion [admarticles]
login do usuário
Mot de passe [mdparticles]
senha do usuário
  • Observe que estamos utilizando pela primeira vez o usuário (admarticles, mdparticles) criado em um parágrafo anterior. Novamente, executamos o comando [Suivant] para obter a seguinte nova planilha:

Image

  • Preenchemos os diversos campos:
Changer la base ...
Selecionamos a base [dbarticles] como base padrão para o usuário [admarticles]
  • executamos [Suivant] para obter a seguinte nova planilha:

Image

  • Aceitamos os valores padrão e geramos [Terminer]. É apresentado um resumo das características da fonte ODBC que será criada:

Image

  • O botão [Tester la source de données] nos permite verificar a validade das nossas informações. Verifique se o MSDE foi iniciado e, em seguida, teste a conexão:

Image

  • Agora temos certeza de que o par [admarticles, mdparticles] é reconhecido.

Para testes adicionais, o leitor poderá seguir o procedimento explicado no parágrafo 3.10.

3.16. Cadeia de conexão a um banco de dados MSDE

  • Inicie o Visual Studio e solicite a exibição do explorador de servidores [Affichage/Explorateur de serveurs]:
  • clique com o botão direito do mouse em [Connexion de données] e selecione a opção [Ajouter une connexion]:

Image

  • no painel [Provider], indique que deseja usar uma fonte SQL Server e, em seguida, passe para o painel [Connection]. Observe que, neste caso, não se utiliza um driver ODBC.

Image

Nom de serveur
[portable1_tahe\msde140405]
nome do servidor MSDE ao qual se conecta
Nom d'utilisateur [admarticles]
identificador a ser usado para se conectar ao banco de dados
Mot de passe [mdparticles]
a senha associada a esse identificador
base de données [dbarticles]
o banco de dados com o qual se deseja trabalhar

Um botão [Tester la connexion] permite verificar a validade das informações:

Image

  • confirme o assistente com [OK]. Curiosamente, uma nova janela solicita as características da conexão:

Image

  • reintroduzimos essas informações e executamos o [OK]. A fonte de dados aparece então na janela [Explorateur de serveurs] do Visual Studio:

Image

  • Ao clicar duas vezes na tabela [ARTICLES], temos acesso aos dados da tabela:

Image

  • Se clicarmos com o botão direito do mouse no link [portable1_tahe\msde140405.dbarticles.admarticles] do painel [Explorateur de serveurs] e selecionarmos a opção [Propriétés], teremos acesso às propriedades da conexão:

Image

  • A string de conexão [ConnectString] é uma propriedade interessante de se conhecer, pois o código .NET precisa dela para estabelecer uma conexão com o banco de dados. Aqui, essa string de conexão é:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PORTABLE1_TAHE;Use Encryption for Data=False;Tag with column collation when possible=False

Muitos elementos dessa cadeia de conexão possuem valores padrão. Podemos nos contentar com a seguinte cadeia de conexão:

"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;PASSWORD=mdparticles"