Skip to content

3. Anexos

3.1. Criar 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 aplicação web, normalmente escolhe-se o tipo [Application Web ASP.NET]. Este tipo de projeto requer a existência de um servidor web IIS local ou remoto. Se estiver a trabalhar num computador Windows XP, esse servidor não existe e não é possível instalá-lo. Por conseguinte, não é possível criar um projeto do tipo [Application Web ASP.NET].

É possível contornar este obstáculo aceitando alguns inconvenientes menores. Basta:

  • utilizar o servidor web Cassini em vez do servidor IIS. Este está disponível gratuitamente no site da Microsoft.
  • utilizar 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]
  • eliminar o [Class1.vb]

Image

  • adicionar um novo elemento ao projeto, do tipo [Fichier texte], e denominá-lo [demo.aspx]:
  • O ficheiro [demo.aspx] é reconhecido como uma página web e tem um editor de páginas associado. Este editor tem dois painéis:
  • [design] para construir graficamente a página
  • [HTML] para aceder ao código HTML da página

Image

  • clicar em [Affichage/Code] para exibir a parte do código VB da página. Não acontece nada. Não se tem acesso ao código VB da página.
  • aceder ao painel [HTML] e introduzir o código que irá ligar a página [demo.aspx] ao código [demo.aspx.vb]:

Image

  • solicitar a visualização do código de controlo associado à página através de [Affichage code - F7]. Obtém-se o ficheiro [demo.aspx.vb]:

Image

  • a página [demo.aspx] é agora reconhecida como uma página web [.aspx] com um 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 aceder ao painel [HTML]. Aí 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>

Este 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 passar para o código [demo.aspx.vb] para escrever o código de controlo que irá inserir a hora no componente [lblHeure]. Verifica-se que este não é reconhecido pelo Intellisense, a ferramenta de ajuda à escrita de código.
  • Feche os ficheiros [demo.aspx] e [demo.aspx.vb], guardando-os previamente, e volte a abri-los. Passe para o código [demo.aspx.vb]. Desta vez, o componente [lblHeure] de [demo.aspx] é devidamente reconhecido pelo Intellisense no código [demo.aspx.vb]. Complete o código:

Image

  • gerar o projeto através de [Générer/Générer demo]. Se a geração decorrer corretamente, o ficheiro DLL será então gerado na pasta [bin] do projeto:

Image

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

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 para a pasta do projeto web do Visual Studio
/demo
o caminho virtual associado
  • Inicie o Cassini. O seu ícone é colocado na barra de tarefas. Clique com o botão direito do rato sobre ele e selecione a opção [Show details] para verificar se a configuração do servidor web está correta:

Image

  • Com um navegador, acedemos à página que criámos, introduzindo o endereço URL [http://localhost/demo/demo.aspx]. Obtemos o seguinte resultado:

Image

Conseguimos criar uma aplicação web no Visual Studio utilizando:

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

Sabemos agora como criar aplicações 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, pode-se utilizar o servidor web Cassini. Este está disponível através de um produto denominado [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:

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

Assim que a instalação estiver concluída, o produto [WebMatrix] estará disponível na lista de programas instalados:

Image

A ligação [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]:

No arranque inicial, o [WebMatrix] solicita as características do novo projet.C; esta é a sua configuração por predefinição. É possível configurá-lo para que não exiba esta caixa de diálogo no arranque. Para tal, utiliza-se a opção [File/New File]. O [WebMatrix] permite criar esqueletos para diferentes aplicações web. Acima, indicámos com (1) que pretendíamos criar uma aplicação [ASP.ET Page], que é uma página web. Com (2), especificamos a pasta na qual essa página web será colocada. Em (3), indicamos o nome da página. Este deve ter a extensão .aspx. Por fim, em (4), especificamos que pretendemos trabalhar com a linguagem VB.NET, sendo que o [WebMatrix] também suporta as linguagens C# e J#. Feito isto, o [WebMatrix] apresenta uma página de edição do ficheiro [demo1.aspx]. Colocamos aí o seguinte código:

Image

  • O separador [Design] permite «desenhar» a página web que se pretende criar. O processo é semelhante ao utilizado num IDE para a criação de aplicações Windows.
  • O design gráfico da página web no [Design] irá gerar código HTML no separador [HTML]
  • A página Web pode conter controlos que geram eventos aos quais é necessário reagir, como, por exemplo, um botão. Esses eventos serão geridos pelo código VB.NET, que será colocado no separador [Code]
  • por fim, o ficheiro demo1.aspx é um ficheiro de texto que combina o código HTML e o código VB.NET, resultado do design gráfico realizado em [Design], do código HTML que foi adicionado manualmente no [HTML] e do código VB.NET inserido no [Code]. O ficheiro completo está disponível no separador [All].
  • Um programador experiente em ASP.ET pode criar o ficheiro demo1.aspx diretamente com um editor de texto, sem precisar de recorrer a nenhum IDE.

Selecionemos a opção [All]. Verifica-se que o [WebMatrix] já gerou código:

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

     ' Inserir código da página aqui
    '

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

Não vamos tentar explicar este código aqui. Transformamo-lo da seguinte forma:

<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. Este foi colocado entre as balizas <% ... %>. Para executar este código, utilizamos a opção [View/Start]. O [WebMatrix] inicia então o servidor Web Cassini, caso este ainda não esteja em execução

Image

Pode-se aceitar os valores predefinidos propostos nesta caixa de diálogo e selecionar a opção [Start]. O servidor Web fica então ativo. O [WebMatrix] irá então iniciar o navegador predefinido do computador em que se encontra e solicitar o URL http://localhost:8080/demo1.aspx:

Image

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

Image

Abramos uma janela do DOS e acedamos à 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
...

Executemos o [WebServer.exe] sem parâmetros:

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

Aparece uma janela de ajuda:

Image

A aplicação [WebServer], também conhecida como servidor web Cassini, aceita três parâmetros:

  • /port: número da porta do serviço web. Pode ser qualquer valor. Por predefinição, o valor é 80
  • /path: caminho físico de uma pasta no disco
  • /vpath: pasta virtual associada à pasta física anterior. É importante ter em atenção 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.

Colocamos o ficheiro [demo1.aspx] na seguinte pasta:

Image

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

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 o seu ícone aparece na barra de tarefas. Se clicarmos duas vezes nesse ícone:

Image

Encontram-se os parâmetros de arranque do servidor. Também é possível encerrar o [Stop] ou reiniciar o servidor web [Restart]. Se clicarmos na ligação [Root URL], obtemos a raiz da árvore web do servidor num 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] tiver sido associada à pasta virtual V=[/webmatrix] e o servidor estiver a funcionar na porta 100, a página web [demo1.aspx], que se encontra fisicamente em [P\demos], estará acessível localmente através de URL [http://localhost:100/V/demos/demo1.aspx].

Para não ser obrigado a passar por 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:\Program Files\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:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812"

3.3. Onde encontrar o Spring?

O site principal do Spring é [http://www.springframework.org/]. Trata-se do site da versão Java. A versão .NET, atualmente em desenvolvimento (abril de 2005), encontra-se na URL [http://www.springframework.net/].

Image

O site de download encontra-se em [SourceForge]:

Image

Depois de descarregar o ficheiro zip acima, descompacte-o:

Image

Neste documento, utilizámos apenas o conteúdo da pasta [bin]:

Image

Num projeto do Visual Studio que utilize o Spring, é necessário fazer sistematicamente duas coisas:

  • colocar os ficheiros acima referidos 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

Descarregue esta versão e instale-a. A instalação cria uma pasta onde se encontra a versão gráfica de teste:

O que é interessante encontra-se 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 encontra-se em [Personne.vb]:

Public Class Personne

     ' campos privados
    Private _nom As String
    Private _age As Integer

     ' construtor por predefiniçã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 encontra-se 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
         ' registo
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' registo no ecrã
        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)
         ' registo no ecrã
        Console.WriteLine("fin test")
    End Sub

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

End Class

Há vários aspetos a destacar:

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

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

Image

O assembly [nunit.framework.dll] deve constar da lista apresentada se a instalação do [Nunit] tiver decorrido sem problemas. Basta clicar duas vezes no assembly para o adicionar ao projeto:

Image

Feito isto, a classe de teste [NunitTestPersonne] deve importar o espaço de nomes [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 testar
  • o atributo <Setup()> designa o método a executar antes de cada método testado
  • o atributo <TearDown()> designa o método a executar 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 apresenta uma mensagem de erro. Caso contrário, apresenta uma mensagem de sucesso.

Vamos configurar o nosso projeto para que gere um DLL:

Image

O DLL gerado passará a chamar-se [nunit-demos-1.dll] e será colocado, por predefinição, na pasta [bin] do projeto. Vamos gerar o nosso projeto. Obtemos, na pasta [bin]:

Image

Vamos agora executar o utilitário de teste gráfico Nunit. Recorde-se que este se encontra em <Nunit>\bin e que se chama [nunit-gui.exe]. <Nunit> designa a pasta de instalação do [Nunit]. Obtém-se a seguinte interface:

Image

Utilizemos 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 detetar automaticamente as classes de teste que se encontram no DLL carregado. Neste caso, encontra a classe [NunitTestPersonne]. Em seguida, apresenta todos os métodos da classe que possuem o atributo <Test()>. O botão [Run] permite executar os testes no objeto selecionado. Se este for a classe [NunitTestPersonne], todos os métodos apresentados são testados. É possível solicitar o teste de um método específico, selecionando-o e solicitando a sua execução através de [Run]. Vamos solicitar a execução da classe:

Image

Um teste bem-sucedido num método é simbolizado por um ponto verde ao lado do método na janela da esquerda. Um teste falhado é simbolizado por um ponto vermelho.

A janela [Console.Out], à direita, mostra as visualizações de ecrã produzidas pelos métodos testados. Aqui, quisemos acompanhar o desenrolar 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-3 são geradas pelo método [demo] testado (ver 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 disponibiliza os seguintes links (abril de 2005):

Image

Devem ser descarregados os seguintes ficheiros:

firebird-win32
o SGBD para Windows
firebird-net-provider
uma biblioteca de classes para as aplicações .NET que permite aceder ao SGBD sem passar por um controlador ODBC.
firebird-ODBC-driver
o controlador ODBC do Firebird

Efetue a instalação destes elementos. O SGBD é instalado numa pasta cujo conteúdo é semelhante ao seguinte:

Image

Os ficheiros binários encontram-se na pasta [bin]:

Image

fbguard.exe
permite iniciar/parar o SGBD
isql.exe
cliente de linha que permite gerir bases de dados

Note-se que, por predefinição, o administrador do SGBD chama-se [SYSDBA] e a sua palavra-passe é [masterkey]. Foram instalados menus no [Démarrer]:

Image

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

Para criar e utilizar bases de dados Firebird com o cliente de linha de comandos [isql.exe], é necessário consultar a documentação fornecida com o produto na pasta [doc]. Uma forma 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 seguinte.

3.6. Onde encontrar o IB- Expert?

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

Image

Deve-se escolher a versão gratuita [Personal Edition]. Depois de a ter descarregado e instalado, terá à sua disposição uma pasta semelhante à seguinte:

Image

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

Image

Uma vez iniciado, o IBExpert apresenta a seguinte janela:

Image

Vamos utilizar a opção [Database/Create Database] para criar uma base de dados:

Image

Server
pode ser [local] ou [remote]. Neste caso, o nosso servidor está na mesma máquina que o [IBExpert]. Por isso, escolhemos o [local]
Database
utilize o botão do tipo [dossier] do menu suspenso para indicar o ficheiro da base de dados. O Firebird coloca toda a base de dados num único ficheiro. Esta é uma das suas vantagens. A base de dados é transferida de um computador para outro através de uma simples cópia do ficheiro. O sufixo [.gdb] é adicionado automaticamente.
Username
SYSDBA é o administrador predefinido nas distribuições atuais do Firebird
Password
«masterkey» é a palavra-passe do administrador SYSDBA das distribuições atuais do Firebird
Dialect
o dialeto SQL a utilizar
Register Database
se a caixa estiver marcada, o IBExpert apresentará um link para a base de dados criada após a sua criação

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

Image

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

Image

Server version
O [IBExpert] é capaz de gerir diferentes SGBD derivados do Interbase. Selecione a versão do Firebird que tem instalada

Image

Depois de esta nova janela ser validada pelo [Register], obtém-se o seguinte resultado:

Image

Para aceder à base de dados criada, basta clicar duas vezes no respetivo link. O IBExpert apresenta então uma árvore de navegação que permite aceder às propriedades da base de dados:

Image

Vamos criar uma tabela. Clica-se com o botão direito do rato em [Tables] e seleciona-se a opção [New Table]. Obtém-se a janela de definição das propriedades da tabela:

Comecemos por atribuir o nome [ARTICLES] à tabela, utilizando o campo de introdução [1]:

Utilizemos o campo de introdução [2] para definir uma chave primária [ID]:

Um campo é definido como chave primária clicando duas vezes na zona [PK] (Primary Key) do campo. Vamos adicionar campos com o botão [3]:

Image

Enquanto não tivermos «compilado» a nossa definição, a tabela não é criada. Utilizemos 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 apresenta as consultas SQL que executou. Isto permite a aprendizagem tanto da linguagem SQL como do dialeto SQL, que poderá ser proprietário. O botão [Commit] permite validar a transação em curso, enquanto o botão [Rollback] permite anulá-la. Aqui, aceitamo-la através de [Commit]. Feito isto, IBExpert adiciona a tabela criada à estrutura da nossa base de dados:

Image

Ao clicar duas vezes na tabela, tem-se acesso às suas propriedades:

Image

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

Image

Encontramos aqui a restrição de chave primária que criámos. Podemos adicionar outras restrições:

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

Note-se 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 rato na sua área de definição de restrições para adicionar uma nova restrição:

Image

Definamos as restrições pretendidas:

Image

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

Image

Mais uma vez, a restrição IBExpert demonstra ser didática ao indicar as consultas SQL que executou. 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 isto, abramos o painel [DDL] da tabela [ARTICLES]:

Image

Este painel fornece o código SQL para a geração da tabela com todas as suas restrições. É possível guardar este código num script para o executar 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);

Chegou a altura de inserir dados na tabela [ARTICLES]. Para tal, vamos utilizar o seu painel [Data]:

Image

Os dados são introduzidos clicando duas vezes nos campos de introdução de cada linha da tabela. Adiciona-se uma nova linha com o botão [+] e elimina-se uma linha com o botão [-]. Estas operações são realizadas numa transação que é validada através do botão [Commit Transaction]. Sem esta validação, os dados serão perdidos.

O IBExpert permite emitir consultas SQL através da opção [Tools/SQL Editor] ou [F12]. Tem-se então acesso a um editor avançado de consultas SQL, com o qual é possível executar consultas. Estas são guardadas, permitindo assim voltar a uma consulta já executada. Eis um exemplo:

Image

Executa-se a consulta SQL com o botão [Execute] acima. Obtém-se o seguinte resultado:

Image

Vamos terminar aqui as nossas demonstrações. A combinação IBExpert-Firebird revela-se excelente para a aprendizagem de bases de dados.

3.7. Instalar e utilizar um controlador ODBC para [Firebird]

3.8. Instalar o controlador

A ligação [firebird-odbc-provider] na página de downloads do [Firebird] (parágrafo 3.5) dá acesso a um controlador ODBC. Depois de instalado, este aparece na lista de controladores ODBC instalados.

3.9. Criar uma fonte ODBC

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

Image

  • aparece a seguinte janela:

Image

  • Adicionemos, através da ferramenta [Add], uma nova fonte de dados do sistema (painel [System DSN]) que iremos associar à base de dados Firebird que criámos no parágrafo anterior:

Image

  • Primeiro, temos de especificar o controlador ODBC a utilizar. Acima, selecionamos o controlador para o Firebird e, em seguida, clicamos em [Terminer]. O assistente do controlador ODBC do Firebird assume então o controlo:

Image

  • preenchemos os vários campos:

Image

DSN [demo-odbc-firebird]
o nome DSN da fonte ODBC — pode ser qualquer um
Database [D:\..\DBARTICLES.GDB]
o nome do ficheiro BD do Firebird a utilizar — utilize [Browse] para indicar o ficheiro .gbd correspondente
Database Account [SYSDBA]
identificador a utilizar para se ligar à base de dados
Password [masterkey]
a palavra-passe associada a este identificador

O botão [Test connection] permite verificar a validade das informações que fornecemos. Antes de o utilizar, execute o SGBD [Firebird]:

Image

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

3.10. Teste a fonte ODBC

Existem várias formas de verificar o bom funcionamento de uma fonte ODBC. Aqui, vamos utilizar o Excel:

Image

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

Image

  • Selecionemos a fonte ODBC [odbc-firebird-articles] que acabámos de criar e avancemos para o passo seguinte com [OK]:

Image

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

Image

  • Passemos à etapa seguinte com o [Suivant]:

Image

  • Esta etapa permite-nos filtrar os dados. Aqui, não filtramos nada e passamos à etapa seguinte:

Image

  • Esta etapa permite-nos ordenar os dados. Não o fazemos e passamos à etapa seguinte:

Image

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

Image

  • Aqui, o Excel pergunta onde queremos colocar os dados recuperados. Colocamo-los na folha ativa, a partir da célula A1. Os dados são então recuperados na folha do Excel:

Image

Existem outras formas de testar a validade de uma fonte ODBC. Por exemplo, pode-se 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 altera-se então para apresentar uma área de gestão das fontes de dados:

Image

  • Existe uma fonte de dados predefinida, a fonte [Bibliography]. Ao clicar com o botão direito do rato na área das fontes de dados, é possível 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 rato na área das fontes de dados, podemos criar uma nova fonte com a opção [Nouvelle source de données]:

Image

Nom [odbc-firebird-articles]
um nome qualquer. Aqui, utilizámos o nome da fonte ODBC
Type de BD [odbc]
OpenOffice é capaz de gerir diferentes tipos de BD através de JDBC, ODBC ou diretamente (MySQL, Dbase, ...). Para o nosso exemplo, é necessário selecionar o ODBC
URL de la source de données
O botão à direita do campo de introdução dá-nos acesso à lista de fontes ODBC da máquina. Escolhemos a fonte [odbc-firebird-articles]
  • passamos para o painel [ODBC] para definir o utilizador com cuja identidade será efetuada a ligação:

Image

Nom d'utilisateur [sysdba]
o proprietário da fonte ODBC
  • passamos para o painel [Tables]. É solicitada a palavra-passe. Neste caso, é [masterkey]:

Image

  • executa-se [OK]. A lista de tabelas da fonte ODBC é então apresentada:

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. Aparece então na lista de fontes de dados do documento ativo:

Image

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

Image

3.11. Cadeia de ligação de uma fonte ODBC Firebird

  • Inicie o Visual Studio e aceda ao Explorador de Servidores [Affichage/Explorateur de serveurs]:
  • clique com o botão direito do rato em [Connexion de données] e selecione a opção [Ajouter une connexion]:

Image

  • no painel [Provider], indicar que se pretende utilizar uma fonte ODBC (ver acima) e, em seguida, passar para o painel [Connection]:

Image

Use data source name
[demo-odbc-firebird]
selecione a fonte ODBC no menu suspenso. A fonte que acabou de ser criada deverá aparecer. Se necessário, utilize [Refresh] para atualizar a lista de fontes ODBC.
User name [SYSDBA]
identificador a utilizar para iniciar sessão na base de dados
Password [masterkey]
a palavra-passe associada a este 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], obtém-se acesso aos dados da tabela:

Image

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

Image

  • A cadeia de ligação [ConnectString] é uma propriedade interessante de se conhecer, pois o código .NET necessita dela para estabelecer uma ligação à base de dados. Neste caso, essa cadeia de ligaçã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 desta cadeia de ligação têm valores por predefinição. Podemos contentar-nos com a seguinte cadeia de ligação:

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

Isto conclui a nossa apresentação do controlador ODBC do [Firebird].

3.12. Onde encontrar o SGBD MSDE?

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

Descarregue o ficheiro de instalação e, em seguida, instale o SGBD clicando duas vezes no ficheiro executável descarregado. Aparecerá uma janela a solicitar a pasta de instalação. O título é enganador. Trata-se de uma pasta temporária que poderá ser eliminada posteriormente:

Leia atentamente o ficheiro [ReadmeMSDE2000A.htm]. O programa de instalação é o [setup.exe] acima referido. É executado a partir da linha de comandos, para que seja possível passar-lhe parâmetros. Os principais são os seguintes:

Paramètre
Descrição

SAPWD="MotDePasseRenforcé"
Especifica uma palavra-passe reforçada a atribuir ao login de administrador «sa».

INSTANCENAME="NomInstance"
Define o nome da instância. Se INSTANCENAME não for especificado, o programa de instalação instala uma instância por predefiniçã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á ligações de rede provenientes de aplicações executadas noutros computadores. Por predefinição, ou se especificar DISABLENTWORKPROTOCOL=1, o programa de instalação configura a instância para recusar ligações de rede. Especifique DISABLENETWORKPROTOCOLS=0 para ativar as ligaçõ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 ligações

DATADIR="chemin_dossier_données"
Especifica a pasta na qual o programa de instalação instala as bases de dados do sistema, os registos 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 predefinida, o programa de instalação adiciona MSSQL\ ao valor especificado. Para uma instância com nome, o programa de instalação adiciona MSSQL$NomInstance\, em que NomInstance é o valor especificado através 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 ficheiros 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, em que NomInstance é o valor especificado através do parâmetro INSTANCENAME.

Depois de ler as recomendações de instalação acima, deslocamo-nos para a pasta onde os ficheiros de instalação foram extraídos e executamos o seguinte comando DOS (utilização do SGBD sem rede):

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty"
  • INSTANCENAME="MSDE140405" — este 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 ligar-se ao MSDE de duas formas:
    • com uma conta de administrador do Windows
    • com uma conta MSDE — neste caso, serão solicitados um nome de utilizador e uma palavra-passe. Este será o modo a utilizar num programa que se ligue a uma base de dados da instância SGBD.
  • SAPWD="azerty" — esta será a palavra-passe do utilizador da conta SGBD. O utilizador [sa] possui direitos de administração na conta SGBD.

Para utilizar o SGBD em rede, teria de se executar o seguinte comando:

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

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

Image

A instalação é efetuada normalmente em C:\Program Files\Microsoft SQL Server\MSSQL$nomInstance:

Na pasta [LOG] da pasta de instalação, encontra-se o ficheiro de registos da fase de instalação do SGBD. Nele encontra-se 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 conhecer este nome, pois todos os clientes do SGBD irão precisar dele. Na ausência destes registos, é 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 rato em [poste de travail] no ambiente 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, foi criado um atalho em [Démarrer/Démarrage].

Image

Se analisarmos as propriedades deste atalho, verificamos 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 acabámos de instalar.
  • MSSQL é a pasta de uma instância anterior, MSDE. Como não tem nome, chamamos-lhe a instância por predefinição.
  • A pasta [80] é uma pasta comum às diferentes instâncias de MSDE instaladas. O destino [sqlmangr.exe] do atalho que inicia uma instância de MSDE encontra-se na pasta [ 80\Tools\Binn].
Vamos iniciar o MSDE através do atalho do [Démarrer -> Programmes -> Démarrage]. Praticamente nada acontece, exceto que um ícone foi colocado na barra de estado:
Clicamos duas vezes neste ícone:
O servidor MSDE aqui proposto é o servidor predefinido
[PORTABLE1_TAHE] presente no computador. Recorde-se que
o servidor MSDE que instalámos chama-se
[PORTABLE1_TAHE\MSDE140405]. Alteramos o
nome do servidor no campo apropriado:
Se tudo correr bem, a instância [MSDE140405] deverá ser iniciada:

Pode-se efetuar uma primeira verificação. Na mesma pasta onde se encontra o [sqlmangr.exe], existe um cliente de consola [osql.exe] que permite ligar-se a um servidor MSDE e emitir comandos SQL. Durante a instalação, atribuímos a palavra-passe [azerty] ao administrador [sa] do nosso servidor MSDE. Através do cliente de consola, vamos ligar-nos ao servidor recém-instalado. Se executarmos o comando [osql -?], é apresentada 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, numa janela do DOS, utilizemos o [osql] para nos ligarmos 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á à espera de um comando. Estamos devidamente ligados. Para utilizar corretamente o [osql], é necessário consultar a documentação do MSDE. Esta está disponível em vários formatos (pdf, htmlhelp, etc.). Trata-se de uma documentação muito extensa. Em geral, é preferível utilizar um cliente gráfico para trabalhar com uma base de dados MSDE. É isso que é proposto um pouco mais adiante. Para sair do [osql], utiliza-se o comando [exit]:

1> exit

Vamos agora ver como criar bases de dados no servidor MSDE recém-instalado. Antes disso, apresentamos rapidamente uma ferramenta [MSDE Manager] que permite alterar o modo de autenticação de um servidor MSDE. Com efeito, se instalarmos um servidor deste tipo utilizando as opções de instalação predefinidas, o modo de autenticação do servidor será do tipo [authentification windows]. Este tipo de autenticação permite apenas o acesso a utilizadores identificados no computador Windows (eventualmente através de um domínio). Para um programa VB.NET que pretenda ligar-se a uma base de dados para explorar o seu conteúdo, este modo revela-se pouco prático. A situação é ainda pior para as aplicações Java que acedem ao SGBD através de um controlador JDBC. Preferir-se-á, então, a autenticação mista que, além da autenticação anterior, aceita pares (nome de utilizador, palavra-passe) declarados no SGBD. A ferramenta [MSDE Manager] permite realizar esta operação.

3.13. Onde encontrar o MSDE Manager?

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

Pode descarregar a versão gratuita seguindo o link acima:

Image

Image

A versão de avaliação tem uma validade curta. Isso é adequado, pois só a utilizaremos para uma única ação bem específica. Descarregamos e instalamos o produto. É criado um atalho no ambiente de trabalho. Utilizamo-lo para iniciar o MSDE Manager. Depois de passar pelas primeiras janelas, chegamos a esta:

Image

  • inicie o servidor MSDE140405
  • tem de estar ligado ao computador Windows como administrador
  • clique com o botão direito do rato no link [SQL Server Group] e selecione a opção [New SQL Server Registration]:

Image

Image

É apresentada a seguinte página de propriedades:

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

Depois de clicar em [OK], é apresentada a árvore de propriedades do servidor MSDE140405:

Image

Poderíamos começar a criar bases de dados. Não o faremos, pois iremos utilizar outro produto, um clone do produto IBExpert já analisado. Vamos simplesmente alterar o modo de autenticação do MSDE. Cliquemos com o botão direito do rato no servidor MSDE140405 acima e selecionemos 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 ligados. A página [Security] é a que nos interessa:

Image

É necessário verificar aqui se o modo de autenticação do MSDE é, de facto, o [SQL Server and Windows]. Desta forma, será possível ligar-se ao MSDE de duas formas:

  • com uma conta de administrador do Windows — foi o que se fez aqui
  • com uma conta MSDE — neste caso, são solicitados um nome de utilizador e uma palavra-passe. Este será o modo a utilizar num programa que se ligue a uma base de dados do SGBD.

Confirmamos esta escolha e saímos do MSDE Manager. Já não precisaremos mais dele. Para criar bases de dados MSDE, vamos utilizar 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, consequentemente, 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 disponibiliza gestores de administração para vários SGBD. Siga a ligação [MS SQL Manager]:

Image

Acima, selecionamos a versão simplificada do produto. Descarregue-a e instale-a. Ficará com uma pasta semelhante à seguinte:

Image

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

Image

Depois de iniciado, o MS SQL Manager apresenta a seguinte janela:

Image

Comecemos por registar o servidor MSDE no qual pretendemos trabalhar, utilizando a opção [Database/Register Host]:

Comentários:

  • passo 1 - como já foi referido, 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 funcionar no modo [Windows] ou no modo misto [Windows, SQL Server]. O modo de autenticação [Windows] continua a existir. O modo de autenticação misto, por sua vez, nem sempre está ativo. Vimos como ativá-lo com o MSDE Manager. Acima, a ligação foi efetuada com uma conta de administrador.
  • Passo 2 — Após a autenticação bem-sucedida, são apresentadas as bases de dados predefinidas do MSDE. Acima, foram todas selecionadas.

Comentários:

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

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

Image

Utilizamos a opção [Database/Create Database] para criar uma base de dados:

Passo 2:

Quando esta página de informações aparecer, significa que a base de dados [dbarticles] foi criada. É possível verificar isso através do botão [Test Connect]. No campo [Database alias], pode-se inserir o que se quiser. Aqui, indicámos:

  • o nome da base de dados
  • o nome do servidor MSDE onde se encontra
  • o utilizador [admarticles] que será o proprietário desta base de dados e a sua palavra-passe [mdparticles]. Este utilizador ainda não foi criado, mas será em breve.

Passo 3:

  • com o botão [Register], registamos a nova base de dados em [MS SQL Server ]. Após o registo, a base de dados [admarticles] aparece na lista de bases de dados. Ao clicar duas vezes nela, é apresentada a árvore das suas propriedades.

Vamos criar um novo nome de utilizador que será administrador da base de dados [admarticles].

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

Image

  • Verifica-se que já existem duas contas de utilizador definidas:
    • [BUILTIN\Administrateurs]: esta conta utiliza autenticação do Windows. Representa os administradores do computador Windows no qual se encontra o servidor MSDE
    • sa: este login utiliza autenticação SQL. Por predefinição, é o administrador do servidor MSDE. Recorde-se que, neste caso, devido à configuração efetuada durante a instalação do SGBD MSDE, a sua palavra-passe é [azerty].
  • Clicamos com o botão direito do rato na área de inícios de sessão e adicionamos um novo início de sessão:
  • Aparece uma janela de introdução de dados onde definimos as características do novo login:

Image

  • Nome de login: admarticles
  • Palavra-passe: mdparticles
  • Assim que o botão [OK] for premido, o MS Manager apresenta-nos as consultas SQL que irá executar:

Image

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

  • o novo login é inserido na lista de logins:

Image

  • na janela de propriedades da base de dados [dbarticles], clicamos com o botão direito do rato em [users] para criar um utilizador com direitos sobre a base de dados [dbarticles]:

Image

  • aparece então a seguinte janela:

Image

  • No menu suspenso [Login], encontra-se a lista de logins existentes. Selecione o login [admarticles].
  • Em [Name], indica-se um nome de utilizador. Vários utilizadores podem estar associados ao mesmo login. Assim, em MSDE, a criação de um utilizador passa primeiro pela criação de um login. O painel [User] fica com o seguinte aspeto:

Image

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

Image

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

Image

  • Confirmamos as nossas escolhas através do botão [Compile] acima. As consultas SQL apresentadas na execução são as seguintes:

Image

  • compilamo-las através de [OK]. Temos agora um utilizador da base de dados [dbarticles]:

Image

  • Vamos agora criar uma tabela. Clica-se com o botão direito do rato em [Tables] e seleciona-se a opção [New Table]. Aparece a janela de definição das propriedades da tabela:

Image

  • Comecemos por atribuir o nome [ARTICLES] à tabela, utilizando o campo de introdução [Table Name]. Passemos, em seguida, ao painel [Fields]:

Image

  • definamos os seguintes campos:

Image

Enquanto não tivermos «compilado» a nossa definição, a tabela não é criada. Utilizemos 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] apresenta as consultas SQL que executou. Isto permite aprender, ao mesmo tempo, a linguagem Transact-SQL. O botão [Commit] permite validar a transação em curso, enquanto o [Rollback] permite anulá-la. Aqui, aceitamo-la através de [Commit]. Feito isto, [MS SQL Manager] adiciona a tabela criada à estrutura da nossa base de dados:

Image

Ao clicar duas vezes na tabela, tem-se acesso às suas propriedades:

Image

O painel [Checks] permite-nos 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], cliquemos com o botão direito do rato na sua área em branco para adicionar uma nova restrição [New check]:

Image

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

Image

Name: nome da restrição

Tabela: tabela sobre a qual a restrição se aplica

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

A restrição é compilada através do botão [Compile] acima.

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

Image

  • Validam-se 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 restantes restrições para obter, por fim, a seguinte lista:

Image

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

Image

Este painel fornece o código Transact-SQL para a geração da tabela com todas as suas restrições. É possível guardar este código num script para o executar 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

Chegou a altura de introduzir alguns dados na tabela [ARTICLES]. Para tal, vamos utilizar o seu painel [Data]:

Image

O botão [+] permite adicionar uma linha, enquanto o botão [-] permite eliminá-la. Os dados são introduzidos simplesmente digitando-os nos campos de cada linha da tabela. Uma linha é validada através do botão [Post Edit] abaixo:

Image

Vamos criar dois artigos:

Image

O [MS SQL Manager] permite emitir consultas SQL através da opção [Tools/Show SQL Editor] ou [F12]. Temos então acesso a um editor avançado de consultas SQL, com o qual é possível executar consultas. Estas são guardadas, permitindo assim voltar a uma consulta já executada. Eis um exemplo:

Image

Executa-se a consulta SQL com o botão [Execute] acima. Obtém-se o seguinte resultado:

Image

Vamos terminar aqui as nossas demonstrações. O par [MS SQL Manager - MSDE], tal como o par [IBExpert - Firebird], revela-se também excelente para a aprendizagem de bases de dados.

3.15. Criar uma fonte ODBC [MSDE]

O controlador ODBC para o servidor SQL é normalmente instalado por predefinição nos computadores Windows.

  • Iniciar 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 iremos associar à base de dados MSDE que criámos no parágrafo anterior:

Image

  • Em primeiro lugar, temos de especificar o controlador ODBC a utilizar. Acima, selecionamos o controlador para [SQL Server] e, em seguida, passamos para [Terminer]. O assistente do controlador ODBC de [SQL Server] assume então o controlo:

Image

  • preenchemos os vários 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 diferentes campos:
Authentification SQL Server
indicamos que nos ligaremos à fonte de dados ODBC com um nome de utilizador definido no servidor MSDE
ID de connexion [admarticles]
login do utilizador
Mot de passe [mdparticles]
palavra-passe do utilizador
  • Note-se que estamos a utilizar pela primeira vez o utilizador (admarticles, mdparticles) criado num parágrafo anterior. Mais uma vez, executamos o comando [Suivant] para obter a seguinte folha:

Image

  • Preenchemos os diferentes campos:
Changer la base ...
Selecionamos a base [dbarticles] como base predefinida para o utilizador [admarticles]
  • executamos [Suivant] para obter a seguinte nova folha:

Image

  • Aceitamos os valores por predefinição e criamos [Terminer]. É apresentado um resumo das características da fonte ODBC que vai ser criada:

Image

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

Image

  • Agora temos a 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 ligação a uma base de dados MSDE

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

Image

  • no painel [Provider], indicar que se pretende utilizar uma fonte SQL Server e, em seguida, passar para o painel [Connection]. Note-se que, neste caso, não se utiliza um controlador ODBC.

Image

Nom de serveur
[portable1_tahe\msde140405]
nome do servidor MSDE ao qual nos ligamos
Nom d'utilisateur [admarticles]
identificador a utilizar para se ligar à base de dados
Mot de passe [mdparticles]
a palavra-passe associada a este identificador
base de données [dbarticles]
a base de dados com a qual se pretende 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 os dados da ligação:

Image

  • introduzimos-as novamente 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], tem-se acesso aos dados da tabela:

Image

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

Image

  • A cadeia de ligação [ConnectString] é uma propriedade interessante de se conhecer, pois o código .NET necessita dela para estabelecer uma ligação à base de dados. Neste caso, essa cadeia de ligaçã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 desta cadeia de ligação têm valores por predefinição. Podemos contentar-nos com a seguinte cadeia de ligação:

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