3. Anexos
3.1. Criação de um projeto Web com o Visual Studio.NET no Windows XP Home Edition
O Visual Studio.NET permite-lhe criar diferentes tipos de projetos:

Para criar um projeto de aplicação Web, normalmente seleciona-se o tipo [Aplicação Web ASP.NET]. Este tipo de projeto requer um servidor Web IIS local ou remoto. Se estiver a trabalhar numa máquina com Windows XP, este servidor não existe e não pode ser instalado. Por conseguinte, não é possível criar um projeto [Aplicação Web ASP.NET].
Pode contornar esta situação aceitando algumas pequenas desvantagens. Basta:
- utilize o servidor Web Cassini em vez do servidor IIS. Está disponível gratuitamente no site da Microsoft.
- utilize um projeto [Biblioteca de Classes] em vez do projeto [Aplicação Web ASP.NET]
Vamos criar um projeto simples para demonstrar como fazer isto.
- Crie um projeto [Biblioteca de Classes]
![]() | ![]() |
- Elimine [Class1.vb]

- Adicione um novo item ao projeto, do tipo [Ficheiro de Texto], e nomeie-o [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 criar a página graficamente
- [HTML] para aceder ao código HTML da página

- Selecione [Exibir/Código] para exibir a secção de código VB da página. Nada acontece. Não é possível aceder ao código VB da página.
- Vá para o painel [HTML] e insira o código que irá ligar a página [demo.aspx] ao código [demo.aspx.vb]:

- Solicite a visualização do código de controlo associado à página através de [Ver Código - F7]. Verá o ficheiro [demo.aspx.vb]:

- A página [demo.aspx] é agora reconhecida como uma página web [.aspx] com um ficheiro [.aspx.vb] associado.
- Volte ao painel [Design] de [demo.aspx] e crie a seguinte página:

A página contém texto e um componente de servidor do tipo [Label] com o identificador [lblHeure].
- Mude para o painel [HTML]. Aí encontrará 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 ao ficheiro [demo.aspx.vb] para escrever o código de controlo que irá definir a hora no componente [lblHeure]. Notamos que isto não é reconhecido pelo IntelliSense, a ferramenta de autocompletar código.
- Feche [demo.aspx] e [demo.aspx.vb] após guardá-los e, em seguida, reabra-os. Vá para o código em [demo.aspx.vb]. Desta vez, o componente [lblHeure] de [demo.aspx] é reconhecido pelo IntelliSense no código [demo.aspx.vb]. Complete o código:

- Compile o projeto selecionando [Build/Build demo]. Se a compilação for bem-sucedida, a DLL é gerada na pasta [bin] do projeto:

- Estamos prontos para testar. Configuramos o servidor Cassini (ver parágrafo seguinte) da seguinte forma:

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"
o caminho para o executável | |
o caminho para a pasta do projeto web do Visual Studio | |
o caminho virtual associado |
- Inicie o Cassini. O seu ícone aparece na barra de tarefas. Clique com o botão direito do rato sobre ele e selecione a opção [Mostrar detalhes] para verificar se o servidor web está configurado corretamente:

- Utilizando um navegador, aceda à página que criámos introduzindo o URL [http://localhost/demo/demo.aspx]. Obtemos o seguinte resultado:

Criámos com sucesso uma aplicação web no Visual Studio utilizando:
- um projeto de [biblioteca de classes]
- o servidor web Cassini
Agora sabemos como criar aplicações web em computadores que não têm o servidor IIS, como máquinas com Windows XP Home Edition.
3.2. Onde pode encontrar o servidor web Cassini?
Para trabalhar com a plataforma .NET da Microsoft, pode utilizar o servidor web Cassini. Este está disponível através de um produto chamado [WebMatrix], que é um ambiente de desenvolvimento web gratuito para plataformas .NET, disponível no URL:

Siga cuidadosamente os passos de instalação do produto:
- descarregue e instale a plataforma .NET (1.1, a partir de março de 2004)
- descarregue e instale o WebMatrix
- Descarregue e instale 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 nos programas instalados:

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

O link [Class Browser] abre uma ferramenta para explorar classes .NET:

Para testar a instalação, vamos abrir o [WebMatrix]:
![]() |
Ao iniciar pela primeira vez, o [WebMatrix] solicita as especificações do novo projeto. Esta é a sua configuração padrão. Pode configurá-lo para que esta caixa de diálogo não apareça no arranque. Pode então aceder a ela através da opção [Ficheiro/Novo Ficheiro]. O [WebMatrix] permite-lhe criar modelos para várias aplicações web. Acima, especificámos em (1) que queríamos criar uma aplicação [Página ASP.NET], que é uma página web. Em (2), especificamos a pasta onde esta página web será colocada. Em (3), introduzimos o nome da página. Deve ter a extensão .aspx. Por fim, em (4), especificamos que queremos trabalhar com a linguagem VB.NET; o [WebMatrix] também suporta as linguagens C# e J#. Depois de feito isto, o [WebMatrix] apresenta uma página de edição para o ficheiro [demo1.aspx]. Introduzimos aí o seguinte código:

- O separador [Design] permite-lhe «conceber» a página web que pretende criar. Funciona de forma semelhante a um IDE de desenvolvimento de aplicações do Windows.
- O design gráfico da página web em [Design] irá gerar código HTML no separador [HTML]
- A página web pode conter controlos que geram eventos que requerem uma resposta, como um botão. Estes eventos serão tratados pelo código VB.NET colocado no separador [Código]
- Em última análise, o ficheiro demo1.aspx é um ficheiro de texto que combina código HTML e código VB.NET, resultante do design gráfico criado em [Design], do código HTML adicionado manualmente em [HTML] e do código VB.NET colocado em [Código]. O ficheiro completo está disponível no separador [Tudo].
- Um programador ASP.NET experiente pode criar o ficheiro demo1.aspx diretamente utilizando um editor de texto, sem a ajuda de qualquer IDE.
Vamos selecionar a opção [All]. Podemos ver que o [WebMatrix] já gerou algum código:
<%@ Page Language="VB" %>
<script runat="server">
' Insert page code here
'
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<!-- Insert content here -->
</form>
</body>
</html>
Não vamos tentar explicar este código aqui. Vamos transformá-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 mistura de HTML e código VB.NET. Foi colocado dentro das tags <% ... %>. 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

Pode aceitar os valores predefinidos apresentados nesta caixa de diálogo e selecionar a opção [Iniciar]. O servidor web fica então ativo. O [WebMatrix] irá então iniciar o navegador predefinido no computador em que está a ser executado e solicitar o URL http://localhost:8080/demo1.aspx:

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

Abra uma janela do Prompt de Comando e navegue até à 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 quaisquer parâmetros:
Aparece uma janela de ajuda:

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 número. O valor padrão é 80
- /path: o caminho físico para uma pasta no disco
- /vpath: a pasta virtual associada à pasta física anterior. Note que a sintaxe não é /path=path, mas sim /vpath:path, ao contrário do que é indicado no [Exemplo] no painel de ajuda acima.
Vamos colocar o ficheiro [demo1.aspx] na seguinte pasta:

Vamos associar a pasta virtual [/webmatrix] à pasta física [d:\data\devel\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 está agora ativo e o seu ícone aparece na barra de tarefas. Se clicar duas vezes nele:

Irá ver as definições de arranque do servidor. Tem também a opção de parar [Parar] ou reiniciar [Reiniciar] o servidor web. Se clicar na ligação [URL raiz], a raiz da árvore de diretórios web do servidor será aberta num navegador:

Siga o link [demos]:

depois o link [demo1.aspx]:

Podemos ver que, se a pasta física P=[d:\data\devel\webmatrix] tiver sido mapeada para a 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 do URL [http://localhost:100/V/demos/demo1.aspx].
Para evitar ter de utilizar uma janela do DOS para iniciar o servidor Cassini, pode criar um atalho para o executável do servidor com propriedades semelhantes às seguintes:

"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\work\2004-2005\aspnet\webarticles-010405\version3\web" /vpath:"/webarticles" | |
"C:\Arquivos de Programas\Microsoft ASP.NET Web Matrix\v0.6.812" |
3.3. Onde posso encontrar o Spring?
O site principal do Spring é [http://www.springframework.org/]. Este é o site da versão Java. A versão .NET atualmente em desenvolvimento (abril de 2005) está disponível em [http://www.springframework.net/].

O site de downloads está em [SourceForge]:

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

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

Num projeto do Visual Studio que utilize o Spring, deve sempre fazer duas coisas:
- colocar os ficheiros acima na pasta [bin] do projeto
- adicionar uma referência ao assembly [Spring.Core.dll] ao projeto
3.4. Onde pode 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:

Descarregue esta versão e instale-a. A instalação cria uma pasta que contém a interface gráfica de testes:
A parte interessante está na pasta [bin]:


A seta acima aponta para o utilitário de testes gráficos. A instalação também adicionou novos itens ao repositório de assemblies do Visual Studio, que iremos explorar agora.
Vamos criar o seguinte projeto do Visual Studio:

A classe que está a ser testada encontra-se em [Person.vb]:
Public Class Personne
' private fields
Private _nom As String
Private _age As Integer
' default builder
Public Sub New()
End Sub
' properties associated with private fields
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
' identity chain
Public Overrides Function tostring() As String
Return String.Format("[{0},{1}]", nom, age)
End Function
' init method
Public Sub init()
Console.WriteLine("init personne {0}", Me.ToString)
End Sub
' close method
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
' object tested
Private personne1 As Personne
<SetUp()> _
Public Sub init()
' create an instance of Person
personne1 = New Personne
' log
Console.WriteLine("setup test")
End Sub
<Test()> _
Public Sub demo()
' log screen
Console.WriteLine("début test")
' init person1
With personne1
.nom = "paul"
.age = 10
End With
' tests
Assert.AreEqual("paul", personne1.nom)
Assert.AreEqual(10, personne1.age)
' log screen
Console.WriteLine("fin test")
End Sub
<TearDown()> _
Public Sub destroy()
' follow-up
Console.WriteLine("teardown test")
End Sub
End Class
Várias coisas a ter em conta:
- os métodos têm atributos atribuídos, tais como <Setup()>, <TearDown()>, ...
- para que estes atributos sejam reconhecidos, é necessário que se verifique o seguinte:
- o projeto faz referência ao assembly [nunit.framework.dll]
- a classe de teste importa o namespace [NUnit.Framework]
A referência é adicionada clicando com o botão direito do rato em [Referências] no Explorador de Soluções:
![]() | ![]() |

O assembly [nunit.framework.dll] deverá constar na lista se a instalação do [NUnit] tiver sido bem-sucedida. Basta clicar duas vezes no assembly para o adicionar ao projeto:

Depois de fazer isso, a classe de teste [NunitTestPersonne] deve importar o namespace [NUnit.Framework]:
Os atributos da classe de teste [NunitTestPersonne] devem então ser reconhecidos.
- O atributo <Test()> designa um método a ser testado
- O atributo <Setup()> designa o método a ser executado antes de cada método a ser testado
- O atributo <TearDown()> designa o método a ser executado após cada método a ser testado
- O método Assert.AreEqual permite testar a igualdade entre duas entidades. 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] falha e exibe uma mensagem de erro. Caso contrário, exibe uma mensagem de sucesso.
Vamos configurar o nosso projeto para gerar uma DLL:

A DLL gerada será denominada [nunit-demos-1.dll] e será colocada, por predefinição, na pasta [bin] do projeto. Vamos compilar o nosso projeto. Obtemos o seguinte na pasta [bin]:

Agora vamos iniciar o utilitário de testes gráficos do NUnit. Lembre-se de que ele se encontra em <Nunit>\bin e tem o nome [nunit-gui.exe]. <Nunit> refere-se à pasta de instalação [Nunit]. Aparece a seguinte interface:

Vamos utilizar a opção de menu [Ficheiro/Abrir] para carregar a DLL [nunit-demos-1.dll] do nosso projeto:

O [Nunit] consegue detetar automaticamente as classes de teste contidas na DLL carregada. Aqui, encontra a classe [NunitTestPersonne]. Em seguida, apresenta todos os métodos da classe que possuem o atributo <Test()>. O botão [Run] permite-lhe executar os testes no objeto selecionado. Se for a classe [NunitTestPersonne], todos os métodos apresentados são testados. Pode testar um método específico selecionando-o e clicando em [Run]. Vamos executar a classe:

Um teste bem-sucedido num método é indicado por um ponto verde ao lado do método na janela da esquerda. Um teste falhado é indicado por um ponto vermelho.
A janela [Console.Out] à direita mostra a saída de ecrã produzida pelos métodos testados. Aqui, pretendíamos acompanhar o progresso de um teste:
- 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] que está a ser 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 posso encontrar o SGBD Firebird ?
O site principal do Firebird é [http://firebird.sourceforge.net/]. A página de downloads disponibiliza os seguintes links (abril de 2005):

Irá descarregar os seguintes itens:
o SGBD para Windows | |
uma biblioteca de classes para aplicações .NET que permite o acesso ao SGBD sem utilizar um controlador ODBC. | |
o controlador ODBC do Firebird |
Instale estes componentes. O SGBD é instalado numa pasta com um conteúdo semelhante ao seguinte:

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

permite iniciar/parar o SGBD | |
cliente de linha de comandos para a gestão de bases de dados |
Note que, por predefinição, o administrador do SGBD é denominado [SYSDBA] e a palavra-passe é [masterkey]. Foram adicionados menus ao [Iniciar]:

A opção [Firebird Guardian] permite iniciar/parar o SGBD. Após o arranque, o ícone do SGBD permanece na barra de tarefas do Windows:
![]() |
Para criar e gerir bases de dados Firebird utilizando o cliente de linha de comandos [isql.exe], deve ler a documentação incluída com o produto na pasta [doc]. Uma forma mais rápida de trabalhar com o Firebird é utilizar um cliente gráfico. Um desses clientes é o IB-Expert, descrito na secção seguinte.
3.6. Onde posso encontrar o IB- Expert?
O site principal do Firebird é [http://www.ibexpert.com/]. A página de downloads disponibiliza os seguintes links:

Selecione a versão gratuita [Personal Edition]. Depois de descarregada e instalada, terá uma pasta semelhante à seguinte:

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

Uma vez iniciado, o IBExpert apresenta a seguinte janela:

Utilize a opção [Base de dados/Criar base de dados] para criar uma base de dados:

pode ser [local] ou [remoto]. Aqui, o nosso servidor está na mesma máquina que o [IBExpert]. Por isso, escolhemos [local] | |
Utilize o botão [pasta] no menu suspenso para selecionar o ficheiro da base de dados. O Firebird armazena toda a base de dados num único ficheiro. Esta é uma das suas vantagens. Pode transferir a base de dados de um computador para outro simplesmente copiando o ficheiro. A extensão [.gdb] é adicionada automaticamente. | |
SYSDBA é o administrador predefinido nas distribuições atuais do Firebird | |
masterkey é a palavra-passe do administrador SYSDBA nas distribuições atuais do Firebird | |
o dialeto SQL a utilizar | |
Se esta caixa estiver marcada, o IBExpert exibirá um link para a base de dados após a sua criação |
Se, ao clicar no botão [OK] para criar a base de dados, aparecer o seguinte aviso:

isso significa que ainda não iniciou o Firebird. Inicie-o. Aparecerá uma nova janela:

O [IBExpert] pode gerir vários SGBDs derivados do Interbase. Selecione a versão do Firebird que instalou |
![]()
Depois de confirmar esta nova janela clicando em [Registar], verá o seguinte resultado:

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:

Vamos criar uma tabela. Clique com o botão direito do rato em [Tabelas] e selecione a opção [Nova Tabela]. Aparece a janela de definição das propriedades da tabela:
![]() |
Vamos começar por nomear a tabela [ARTIGOS] utilizando o campo de entrada [1]:
![]() |
Utilize o campo de entrada [2] para definir uma chave primária [ID]:
![]() |
Um campo torna-se uma chave primária ao clicar duas vezes no campo [PK] (Chave Primária). Vamos adicionar campos utilizando o botão [3]:

Enquanto não tivermos «compilado» a nossa definição, a tabela não é criada. Utilize o botão [Compilar] acima para finalizar a definição da tabela. O IBExpert prepara as consultas SQL para gerar a tabela e solicita confirmação:

Curiosamente, o IBExpert exibe as consultas SQL que executou. Isto permite-lhe aprender tanto a linguagem SQL como qualquer dialeto SQL proprietário que possa ser utilizado. O botão [Confirmar] valida a transação atual, enquanto [Anular] a cancela. Aqui, aceitamo-la clicando em [Confirmar]. Assim que isto estiver feito, o IBExpert adiciona a tabela criada à nossa árvore de bases de dados:

Ao clicar duas vezes na tabela, podemos aceder às suas propriedades:

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

Vemos a restrição de chave primária que criámos. Podemos adicionar outras restrições:
- chaves estrangeiras [Chaves Estrangeiras]
- restrições de integridade de campo [Verificações]
- restrições de exclusividade de campo [Uniques]
Note que:
- os campos [ID, PRICE, CURRENTSTOCK, MINIMUMSTOCK] devem ser >0
- o campo [NAME] deve ser preenchido e único
Abra o painel [Verificações] e clique com o botão direito do rato na área de definição de restrições para adicionar uma nova restrição:

Vamos definir as restrições desejadas:

Note-se acima que a restrição [NAME<>''] utiliza duas aspas simples, e não aspas duplas. Compile estas restrições utilizando o botão [Compilar] acima:

Mais uma vez, o IBExpert demonstra a sua facilidade de utilização ao apresentar as consultas SQL que executou. Agora, vamos para o painel [Constraints/Unique] para especificar que o nome deve ser único:

Vamos definir a restrição:

Vamos compilar. Depois de feito isso, abra o painel [DDL] da tabela [ARTICLES]:

Este painel exibe o código SQL para gerar a tabela com todas as suas restrições. Pode guardar este código num script para o executar mais tarde:
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 hora de inserir dados na tabela [ARTICLES]. Para isso, utilize o painel [Data]:

Os dados são introduzidos clicando duas vezes nos campos de entrada de cada linha da tabela. Uma nova linha é adicionada utilizando o botão [+] e uma linha é eliminada utilizando o botão [-]. Estas operações são realizadas no âmbito de uma transação que é confirmada através do botão [Confirmar Transação]. Sem esta confirmação, os dados serão perdidos.
O IBExpert permite-lhe executar consultas SQL através da opção [Tools/SQL Editor] ou [F12]. Isto dá-lhe acesso a um editor avançado de consultas SQL onde pode executar consultas. Estas são guardadas, pelo que pode voltar a aceder a uma consulta que já tenha executado. Aqui está um exemplo:

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

Vamos terminar as nossas demonstrações por aqui. A combinação IBExpert-Firebird revela-se excelente para a aprendizagem de bases de dados.
3.7. Instalação e utilização de um controlador ODBC para [Firebird]
3.8. Instalação do controlador
A ligação [firebird-odbc-provider] na página de downloads do [Firebird] (secção 3.5) dá acesso a um controlador ODBC. Depois de instalado, este aparece na lista de controladores ODBC instalados.
3.9. Criar uma fonte de dados ODBC
- Inicie a ferramenta [Iniciar -> Definições -> Ferramenta de Configuração -> Ferramentas Administrativas -> Fontes de Dados ODBC]:

- Aparece a seguinte janela:

- Clique em [Adicionar] para adicionar uma nova fonte de dados do sistema (no painel [DSN do sistema]) que iremos associar à base de dados Firebird que criámos na secção anterior:

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

- Preenchemos os vários campos:

o nome DSN da fonte ODBC — pode ser qualquer coisa | |
o nome da base de dados Firebird a utilizar — utilize [Procurar] para selecionar o ficheiro .gbd correspondente | |
o nome de utilizador a utilizar para se ligar à base de dados | |
a palavra-passe associada a este nome de utilizador |
O botão [Testar ligação] permite-lhe verificar a validade das informações que introduziu. Antes de o utilizar, inicie o SGBD [Firebird]:

- Confirme o assistente ODBC clicando em [OK] tantas vezes quantas forem necessárias
3.10. Teste a fonte ODBC
Existem várias formas de verificar se uma fonte ODBC está a funcionar corretamente. Aqui, iremos utilizar o Excel:

- Utilize a opção [Dados -> Dados Externos -> Criar Consulta] acima. Isto abre a primeira janela do assistente de definição da fonte de dados. O painel [Bases de Dados] lista as fontes ODBC atualmente definidas no computador:

- Selecione a fonte ODBC [odbc-firebird-articles] que acabámos de criar e avance para o passo seguinte clicando em [OK]:

- Esta janela lista as tabelas e colunas disponíveis na fonte ODBC. Vamos selecionar a tabela na íntegra:

- Passe para o próximo passo clicando em [Next]:

- Este passo permite-nos filtrar os dados. Aqui, não iremos filtrar nada e avançaremos para o próximo passo:

- Este passo permite-nos ordenar os dados. Não o faremos e passaremos ao passo seguinte:

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

- 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:

Existem outras formas de testar a validade de uma fonte ODBC. Por exemplo, pode utilizar o pacote gratuito OpenOffice disponível em [http://www.openoffice.org]. Aqui está um exemplo utilizando o OpenOffice:
![]() | ![]() |
- Um ícone no lado esquerdo da janela do OpenOffice permite aceder às fontes de dados. A interface muda então para apresentar uma área de gestão de fontes de dados:

- Existe uma fonte de dados predefinida: a fonte [Bibliografia]. Ao clicar com o botão direito do rato na área de fontes de dados, pode criar uma nova fonte utilizando a opção [Gerir fontes de dados]:

- Um assistente de [Gestão de Fontes de Dados] permite-lhe criar fontes de dados. Ao clicar com o botão direito do rato na área de fontes de dados, pode criar uma nova fonte utilizando a opção [Nova Fonte de Dados]:

Qualquer nome. Aqui, utilizámos o nome da fonte ODBC | |
O OpenOffice suporta vários tipos de bases de dados através de JDBC, ODBC ou diretamente (MySQL, Dbase, etc.). Para o nosso exemplo, selecione ODBC | |
O botão à direita do campo de entrada permite-nos aceder à lista de fontes ODBC disponíveis no computador. Selecionamos a fonte [odbc-firebird-articles] |
- Passamos para o painel [ODBC] para definir o utilizador cujas credenciais serão utilizadas para estabelecer a ligação:

O proprietário da fonte ODBC |
- Vá para o painel [Tabelas]. Ser-lhe-á solicitada a palavra-passe. Aqui, é [masterkey]:

- Clique em [OK]. A lista de tabelas na fonte ODBC é então apresentada:

- Pode selecionar as tabelas a serem exibidas no documento [OpenOffice]. Aqui, selecionamos a tabela [ARTICLES] e clicamos em [OK]. A definição da fonte de dados está concluída. Aparece então na lista de fontes de dados do documento ativo:

- Pode arrastar a tabela [ARTICLES] da parte superior para o documento [OpenOffice] utilizando o rato:

3.11. Cadeia de ligação para uma fonte ODBC Firebird
- Inicie o Visual Studio e abra o Server Explorer [Exibir/Server Explorer]:
![]() |
- Clique com o botão direito do rato em [Conexão de dados] e selecione a opção [Adicionar conexão]:

- No painel [Provedor], especifique que pretende utilizar uma fonte ODBC (ver acima) e, em seguida, mude para o painel [Conexão]:

Selecione a fonte ODBC no menu suspenso. A que acabou de criar deverá aparecer. Se necessário, utilize [Atualizar] para atualizar a lista de fontes ODBC. | |
nome de utilizador a utilizar para se ligar à base de dados | |
A palavra-passe associada a este nome de utilizador |
Mais uma vez, um botão [Testar ligação] permite-lhe verificar a validade das informações:

- Confirme o assistente clicando em [OK]. A fonte de dados aparece então na janela [Explorador de Servidores] no Visual Studio:

- Ao clicar duas vezes na tabela [ARTICLES], pode aceder aos dados da tabela:

- Se clicarmos com o botão direito do rato no link [Firebird Server D:\temp\... ] e selecionarmos a opção [Propriedades], podemos aceder às propriedades da ligação:

- A [ConnectString] é uma propriedade importante a conhecer, pois o código .NET precisa dela para estabelecer uma ligação à base de dados. Aqui, a 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 predefinidos. A seguinte cadeia de ligação será suficiente:
Isto conclui a nossa visão geral do controlador ODBC [Firebird].
3.12. Onde pode encontrar o MSDE ?
O MSDE é a versão gratuita do sistema de gestão de bases de dados SQL Server 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. Será apresentada uma janela a solicitar a pasta de instalação. O título é enganador. Trata-se de uma pasta temporária que pode ser eliminada posteriormente:
![]() | ![]() |
Leia atentamente o ficheiro [ReadmeMSDE2000A.htm]. O instalador é o [setup.exe] acima. É executado a partir da linha de comandos, pelo que pode passar-lhe parâmetros. Os principais são os seguintes:
Descrição | |
| Especifica uma palavra-passe forte a atribuir ao login de administrador "sa". |
| Define o nome da instância. Se INSTANCENAME não for especificado, o instalador instala uma instância padrão. |
Outros parâmetros frequentemente utilizados para personalizar uma instalação são:
Descrição | |
Especifica se a instância aceitará ligações de rede de aplicações em execução noutros computadores. Por predefinição, ou se especificar DISABLENETWORKPROTOCOLS=1, o instalador configura a instância para rejeitar ligações de rede. Especifique DISABLENETWORKPROTOCOLS=0 para ativar as ligações de rede. | |
Especifica que a instância deve ser instalada no modo misto, o que significa que a instância suporta tanto a autenticação do Windows como a autenticação SQL para ligações | |
| Especifica a pasta onde o instalador instala as bases de dados do sistema, os registos de erros e os scripts de instalação. O valor especificado para data_folder_path deve terminar com uma barra invertida (\). Para uma instância padrão, o instalador acrescenta MSSQL\ ao valor especificado. Para uma instância nomeada, o instalador acrescenta MSSQL$InstanceName\, onde InstanceName é o valor especificado através do parâmetro INSTANCENAME. O instalador cria três pastas no local especificado: uma pasta Data, uma pasta Log e uma pasta Script. |
| Especifica a pasta na qual o instalador instala os ficheiros executáveis do MSDE 2000. O valor especificado para executable_folder_path deve terminar com uma barra invertida (\). Para uma instância padrão, o instalador acrescenta MSSQL\Binn ao valor especificado. Para uma instância nomeada, o instalador acrescenta MSSQL$InstanceName\Binn, em que InstanceName é o valor especificado através do parâmetro INSTANCENAME. |
Após ler as recomendações de instalação acima, navegue até à pasta onde os ficheiros de instalação foram extraídos e introduza o seguinte comando DOS (utilizando o SGBD sem rede):
- INSTANCENAME="MSDE140405" - este será o nome da nossa instância MSDE. Pode instalar várias instâncias.
- SECURITYMODE=SQL - o SGBD será executado no modo de autenticação mista. Isto permite-lhe ligar-se ao MSDE de duas formas:
- com uma conta de administrador do Windows
- com uma conta MSDE — sendo necessário um nome de utilizador e uma palavra-passe. Este é o modo a utilizar num programa que se liga a uma base de dados.
- SAPWD="azerty" - esta será a palavra-passe do utilizador [sa] do SGBD. O utilizador [sa] tem direitos administrativos no SGBD.
Para utilizar o SGBD numa rede, deve executar o seguinte comando:
O programa de instalação é minimalista e é concluído sem apresentar qualquer mensagem... No entanto, pode verificar se o SGBD foi instalado através da opção [Menu Iniciar -> Painel de Controlo -> Adicionar ou Remover Programas]:
![]()
A instalação é normalmente realizada em C:\Arquivos de Programas\Microsoft SQL Server\MSSQL$instanceName:
![]() | ![]() |
Na pasta [LOG] dentro do diretório de instalação, encontrará o ficheiro de registo da fase de instalação do SGBD. Este contém uma informação importante: o nome da instância do MSDE:
É importante saber este nome porque todos os clientes do SGBD irão precisar dele. Se estes registos estiverem em falta, pode encontrar o nome de um servidor MSDE, que é [windows_machine\MSDE_instance_name]. O nome da máquina está disponível em vários locais. Por exemplo:
- Clique com o botão direito do rato em [Meu Computador] no ambiente de trabalho, selecione [Propriedades] e, em seguida, o separador [Nome do Computador]:

Ainda não sabemos como iniciar o servidor MSDE. Normalmente, existe um atalho em [Iniciar/Inicialização].

Se verificar as propriedades deste atalho, verá que o destino é o seguinte:
Na pasta [C:\Program Files\Microsoft SQL Server], existem subpastas:

- MSSQL$MSDE140405 é a pasta da instância MSDE que acabámos de instalar.
- MSSQL é a pasta de uma instância MSDE anterior. Como não tem nome, chamamos-lhe a instância padrão.
- A pasta [80] é uma pasta partilhada para as várias instâncias MSDE instaladas. O destino [sqlmangr.exe] do atalho que inicia uma instância MSDE está localizado na pasta [80\Tools\Binn].
Vamos iniciar o MSDE através do atalho em [Iniciar -> Programas -> Inicialização]. Quase nada acontece, exceto que um ícone aparece na barra de tarefas: | Clique duas vezes neste ícone: ![]() |
O servidor MSDE aqui apresentado é o servidor predefinido [PORTABLE1_TAHE] na máquina. Lembre-se de que o servidor MSDE que instalámos tem o nome [PORTABLE1_TAHE\MSDE140405]. Alteramos o nome do servidor no campo apropriado: ![]() | Se tudo correr bem, a instância [MSDE140405] deverá ser iniciada: ![]() |
Podemos realizar uma verificação inicial. Na mesma pasta que o [sqlmangr.exe], existe um cliente de consola [osql.exe] que permite ligar-se a um servidor MSDE e executar comandos SQL. Durante a instalação, atribuímos a palavra-passe [azerty] ao administrador [sa] do nosso servidor MSDE. Utilizando o 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'host]
[-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'echo]
[-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'error]
[-r msgs vers stderr]
[-V severitylevel]
[-i fichier d'entry]
[-o fichier de sortie]
[-p imprimer les statistiques] [-b abandon du lot d'instruction after error]
[-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'automatic console width scaling
Messages larges
niveau d'default error -1 instead of 1
[-? description de la syntaxe]
Inicie o servidor [MSDE140405] conforme descrito acima; em seguida, numa janela do prompt de comando, utilize [osql] para se ligar 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. A ligação foi estabelecida com sucesso. Para utilizar o [osql] corretamente, deve consultar a documentação do MSDE. Esta está disponível em vários formatos (PDF, Ajuda HTML, etc.). Esta documentação é bastante extensa. Geralmente, é preferível utilizar um cliente gráfico para trabalhar com uma base de dados MSDE. É isso que se sugere um pouco mais adiante. Para sair do [osql], utilize o comando [exit]:
Vamos agora ver como criar bases de dados no servidor MSDE recém-instalado. Antes disso, apresentaremos brevemente uma ferramenta chamada [MSDE Manager] que permite alterar o modo de autenticação de um servidor MSDE. Na verdade, se instalar esse servidor utilizando as opções de instalação predefinidas, o modo de autenticação do servidor é definido como [autenticação do Windows]. Este tipo de autenticação permite apenas utilizadores identificados na máquina Windows (possivelmente através de um domínio). Para um programa VB.NET que pretenda ligar-se a uma base de dados para utilizar o seu conteúdo, este modo é impraticável. É ainda pior para aplicações Java que acedem ao SGBD através de um controlador JDBC. Nesses casos, é preferível a autenticação mista, uma vez que aceita pares de nome de utilizador/palavra-passe definidos no SGBD, para além do método de autenticação anterior. A ferramenta [MSDE Manager] permite-lhe realizar esta operação.
3.13. Onde posso encontrar o MSDE Manager?
O [MSDE Manager] é uma ferramenta de administração para o SGBD MSDE. Pode ser encontrado no URL [http://www.valesoftware.com/].
Descarregamos a versão gratuita seguindo o link acima:


A versão de avaliação tem uma duração curta. Isso não é problema, uma vez que só a utilizaremos para uma única tarefa específica. Descarregue e instale o produto. Será criado um atalho no ambiente de trabalho. Utilize-o para iniciar o MSDE Manager. Após as janelas iniciais, chegará a esta:

- Inicie o servidor MSDE140405
- Tem de estar conectado 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]:


A seguinte página de propriedades é apresentada:
![]() |
portable1_tahe\msde140405 - nome da instância do MSDE à qual pretende ligar-se | |
Autenticação do Windows - este modo está sempre disponível e permite que um administrador de uma máquina Windows se ligue ao servidor MSDE | |
Selecione o único grupo de servidores listado [Grupo do SQL Server] |
Depois de clicar em [OK], é apresentada a árvore de propriedades do servidor MSDE140405:

Poderíamos começar a criar bases de dados. Não o faremos porque iremos utilizar outro produto, um clone do produto IBExpert que já abordámos. Iremos simplesmente alterar o modo de autenticação do MSDE. Clique com o botão direito do rato no servidor MSDE140405 acima e selecione a opção [Design]:

Aparece a seguinte janela de informações:

O separador [General] fornece informações sobre o servidor MSDE ao qual está ligado. A página [Security] é aquela que nos interessa:

Aqui, deve certificar-se de que o modo de autenticação do MSDE está definido como [SQL Server e Windows]. Isto permitirá que se ligue ao MSDE de duas formas:
- com uma conta de administrador do Windows — que foi o que foi feito aqui
- com uma conta MSDE — sendo então necessários um nome de utilizador e uma palavra-passe. Este é o modo a utilizar num programa que se liga a uma base de dados DBMS.
Confirmamos esta seleção e saímos do MSDE Manager. Já não precisaremos dele. Para criar bases de dados MSDE, utilizaremos outra ferramenta: o EMS MS SQL Manager.
3.14. Onde pode encontrar o EMS MS SQL Manager?
O EMS MS SQL Manager é uma ferramenta gráfica para trabalhar com o SGBD Microsoft SQL Server e, consequentemente, com o MSDE. É muito semelhante à ferramenta IB-Expert descrita anteriormente. Está disponível no endereço [http://sqlmanager.net/] (abril de 2005):

O site oferece ferramentas de administração para muitos SGBDs. Siga o link [MS SQL Manager]:

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

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

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

Vamos começar por registar o servidor MSDE com o qual queremos trabalhar, utilizando a opção [Base de dados/Registar anfitrião]:
![]() |
Comentários:
- Passo 1 - Conforme mencionado, o MSDE suporta 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] está sempre disponível. O modo de autenticação misto, no entanto, nem sempre está ativo. Vimos como ativá-lo utilizando o MSDE Manager. Acima, a ligação foi estabelecida utilizando uma conta de administrador.
- Passo 2 - Assim que a autenticação for bem-sucedida, são apresentadas as bases de dados MSDE predefinidas. Acima, todas elas foram selecionadas.
![]() |
Comentários:
- Passo 3: É possível selecionar as opções de administração para as bases de dados selecionadas. Aqui, foram mantidas as opções predefinidas.
- Passo 4: Registamos o servidor MSDE utilizando o botão [Registar]
O servidor MSDE aparece então no explorador de bases de dados:

Vamos utilizar a opção [Base de dados/Criar base de dados] para criar uma base de dados:
![]() |
Passo 2:
Quando esta página de informação aparecer, significa que a base de dados [dbarticles] foi criada. Pode verificar isso clicando no botão [Testar ligação]. No campo [Alias da base de dados], pode introduzir o que quiser. Aqui, introduzimos:
- o nome da base de dados
- o nome do servidor MSDE no qual 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:
- Clique no botão [Registar] para registar a nova base de dados no [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 sua árvore de propriedades.
![]() | ![]() |
Vamos criar um novo utilizador que será o administrador da base de dados [admarticles].
- Selecione a opção [Ferramentas/Gestor de Utilizadores]:

- Podemos ver que já existem dois logins definidos:
- [BUILTIN\Administrators]: Este login utiliza a autenticação do Windows. Representa os administradores da máquina Windows na qual o servidor MSDE está localizado
- sa: Este login utiliza a autenticação SQL. Por predefinição, é o administrador do servidor MSDE. Note que aqui, tal como configurado durante a instalação do SGBD MSDE, a sua palavra-passe é [azerty].
- Clique com o botão direito do rato na área de logins e adicione um novo login:
![]() |
- Aparece um formulário onde definimos as características do novo login:

- Nome de utilizador: admarticles
- Palavra-passe: mdparticles
- Assim que o botão [OK] for clicado, o MS Manager exibe as consultas SQL que irá executar:

A linguagem SQL apresentada acima é Transact-SQL, a linguagem SQL utilizada pelo MSDE. Executamos este código clicando em [OK]
- O novo login é adicionado à lista de logins:

- Na janela de propriedades da base de dados [dbarticles], clique com o botão direito do rato em [users] para criar um utilizador com permissões na base de dados [dbarticles]:

- Aparece então a seguinte janela:

- Na lista suspensa [Login], verá a lista de logins existentes. Selecione o login [admarticles].
- Em [Nome], introduza um nome de utilizador. É possível associar vários utilizadores ao mesmo login. Além disso, no MSDE, para criar um utilizador é necessário criar primeiro um login. O painel [Utilizador] tem agora o seguinte aspeto:

- Agora, passemos ao painel [Membro de], que nos permitirá definir as permissões do nosso utilizador:

- Não sou um utilizador habitual do MSDE e não tenho a certeza do significado exato de cada uma das funções listadas no painel esquerdo. A função [db_owner] é tentadora (owner = proprietário). Por isso, vamos selecioná-la para o nosso utilizador [admarticles]:

- Confirmamos as nossas seleções clicando no botão [Compile] acima. As consultas SQL executadas são as seguintes:

- Compilamo-las clicando em [OK]. Agora temos um utilizador para a base de dados [dbarticles]:

- Agora vamos criar uma tabela. Clique com o botão direito do rato em [Tables] e selecione a opção [New Table]. Isto abre a janela de definição das propriedades da tabela:

- Comecemos por nomear a tabela [ARTICLES] utilizando o campo de entrada [Table Name]. Em seguida, passe para o painel [Fields]:

- Defina os seguintes campos:

Enquanto não tivermos «compilado» a nossa definição, a tabela não é criada. Utilize o botão [Compilar] acima para finalizar a definição da tabela. O [MS SQL Manager] prepara as consultas SQL para gerar a tabela e solicita confirmação:

Curiosamente, o [MS SQL Manager] exibe as consultas SQL que executou. Isto permite-lhe aprender a linguagem Transact-SQL. O botão [Confirmar] valida a transação atual, enquanto [Anular] a cancela. Aqui, aceitamo-la clicando em [Confirmar]. Assim que isto estiver feito, o [MS SQL Manager] adiciona a tabela criada à nossa árvore de bases de dados:

Ao clicar duas vezes na tabela, podemos aceder às suas propriedades:

O painel [Checks] permite-nos adicionar novas restrições de integridade à tabela. Para a tabela [ARTICLES], iremos criar as seguintes restrições:
- os campos [ID, PRICE, CURRENTSTOCK, MINIMUMSTOCK] devem ser >=0
- o campo [NAME] não pode estar vazio
No painel [Verificações], clique com o botão direito do rato na área em branco para adicionar uma nova restrição [Nova verificação]:

- A janela de edição da restrição tem o seguinte aspeto:

Nome: nome da restrição
Tabela: tabela à qual a restrição se aplica
Definição: expressão da restrição
A restrição é compilada utilizando o botão [Compilar] acima.
- Mais uma vez, o [MS SQL Manager] apresenta os comandos SQL executados:

- Validamo-los utilizando o botão [Commit] (não mostrado). Se voltarmos ao painel [Checks] da tabela [ARTICLES], a nova restrição aparece:

- Definimos as outras restrições da mesma forma para, finalmente, obter a seguinte lista:

Depois de fazer isso, abra o painel [DDL] da tabela [ARTICLES]:

Este painel apresenta o código Transact-SQL para criar a tabela com todas as suas restrições. Pode guardar este código num script para o executar mais tarde:
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 hora de inserir alguns dados na tabela [ARTICLES]. Para isso, utilize o painel [Data]:

O botão [+] adiciona uma linha e o botão [-] remove uma. Os dados são introduzidos simplesmente digitando nos campos de entrada de cada linha da tabela. Uma linha é validada utilizando o botão [Post Edit] abaixo:
![]()
Vamos criar dois itens:

O [MS SQL Manager] permite-lhe executar consultas SQL através da opção [Ferramentas/Mostrar Editor SQL] ou da tecla [F12]. Isto dá-lhe acesso a um editor avançado de consultas SQL, onde pode executar consultas. As consultas são guardadas, pelo que pode voltar a aceder a uma consulta que já tenha executado. Aqui está um exemplo:

Execute a consulta SQL utilizando o botão [Executar] acima. Obterá o seguinte resultado:

Vamos terminar as nossas demonstrações por aqui. A combinação [MS SQL Manager - MSDE], tal como a combinação [IBExpert - Firebird], também é excelente para aprender sobre bases de dados.
3.15. Criar uma fonte ODBC [MSDE]
O controlador ODBC para o SQL Server é normalmente instalado por predefinição em máquinas Windows.
- Inicie a ferramenta [Iniciar -> Definições -> Ferramentas de configuração -> Ferramentas administrativas -> Fontes de dados ODBC]:

- Aparece a seguinte janela:

- Clique em [Adicionar] para adicionar uma nova fonte de dados do sistema (no painel [DSN do sistema]) que iremos associar à base de dados MSDE que criámos na secção anterior:

- Primeiro, precisamos de especificar o controlador ODBC a utilizar. Acima, selecionamos o controlador para [SQL Server] e, em seguida, clicamos em [Concluir]. O Assistente do Controlador ODBC [SQL Server] assume então o controlo:

- Preenchemos os vários campos:
o nome da fonte ODBC — pode ser qualquer coisa | |
pode ser qualquer coisa | |
Nome do servidor MSDE que contém os dados de origem ODBC |
- Clique em [Seguinte] para fornecer informações adicionais:

- Preencha os vários campos:
Especifique que se irá ligar à fonte de dados ODBC utilizando um nome de utilizador registado no servidor MSDE | |
Nome de utilizador | |
Palavra-passe do utilizador |
- Note que esta é a primeira vez que estamos a utilizar o utilizador (admarticles, mdparticles) criado numa secção anterior. Clique em [Seguinte] novamente para avançar para o ecrã seguinte:

- Preenchemos os vários campos:
Selecionamos a base de dados [dbarticles] como base de dados predefinida para o utilizador [admarticles] |
- Clique em [Seguinte] para avançar para o ecrã seguinte:

- Aceitamos os valores predefinidos e clicamos em [Concluir]. É apresentado um resumo das características da fonte ODBC que será criada:

- O botão [Testar fonte de dados] permite-nos verificar a validade das nossas informações. Verifique se o MSDE está a funcionar e, em seguida, teste a ligação:

- Agora temos a certeza de que o par [admarticles, mdparticles] é reconhecido.
Para realizar mais testes, o leitor pode seguir o procedimento explicado na secção 3.10.
3.16. Cadeia de ligação a uma base de dados MSDE
- Inicie o Visual Studio e abra o Explorador de Servidores [Exibir/Explorador de Servidores]:
![]() |
- Clique com o botão direito do rato em [Conexão de dados] e selecione a opção [Adicionar conexão]:

- No painel [Provedor], especifique que pretende utilizar uma fonte SQL Server e, em seguida, mude para o painel [Conexão]. Note que, neste caso, não estamos a utilizar um controlador ODBC.

Nome do servidor MSDE ao qual se está a ligar | |
nome de utilizador a utilizar para se ligar à base de dados | |
a palavra-passe associada a este nome de utilizador | |
A base de dados com a qual pretende trabalhar |
Um botão [Testar ligação] permite-lhe verificar a validade das informações:

- Confirme o assistente clicando em [OK]. Curiosamente, uma nova janela solicita os detalhes da ligação:

- introduza-os novamente e clique em [OK]. A fonte de dados aparece então na janela [Explorador de Servidores] no Visual Studio:

- ao clicar duas vezes na tabela [ARTICLES], pode aceder aos dados da tabela:

- Se clicarmos com o botão direito do rato na ligação [portable1_tahe\msde140405.dbarticles.admarticles] no painel [Explorador de Servidores] e selecionarmos a opção [Propriedades], podemos visualizar as propriedades da ligação:

- A [ConnectString] é uma propriedade importante a conhecer, pois o código .NET precisa dela para estabelecer uma ligação à base de dados. Aqui, a 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 predefinidos. A seguinte cadeia de ligação será suficiente:






























