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:

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]

- 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

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

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

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

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:

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

- Estamos prontos para os testes. 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 do executável | |
o caminho para a pasta do projeto web do Visual Studio | |
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:

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

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:

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:

A ligação [ASP.NET] Web Matrix inicia o IDE de desenvolvimento ASP.NET:

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

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:

- 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

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:

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

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

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:

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:

Vamos seguir o link [demos]:

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

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:

"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" | |
"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/].

O site de download encontra-se 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, é 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:

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


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:

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:
![]() | ![]() |

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:

Feito isto, a classe de teste [NunitTestPersonne] deve importar o espaço de nomes [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:

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

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:

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

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:

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

Devem ser descarregados os seguintes ficheiros:
o SGBD para Windows | |
uma biblioteca de classes para as aplicações .NET que permite aceder ao SGBD sem passar por um controlador ODBC. | |
o controlador ODBC do Firebird |
Efetue a instalação destes elementos. O SGBD é instalado numa pasta cujo conteúdo é semelhante ao seguinte:

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

permite iniciar/parar o SGBD | |
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]:

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:

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

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

Uma vez iniciado, o IBExpert apresenta a seguinte janela:

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

pode ser [local] ou [remote]. Neste caso, o nosso servidor está na mesma máquina que o [IBExpert]. Por isso, escolhemos o [local] | |
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. | |
SYSDBA é o administrador predefinido nas distribuições atuais do Firebird | |
«masterkey» é a palavra-passe do administrador SYSDBA das distribuições atuais do Firebird | |
o dialeto SQL a utilizar | |
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:

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

O [IBExpert] é capaz de gerir diferentes SGBD derivados do Interbase. Selecione a versão do Firebird que tem instalada |
![]()
Depois de esta nova janela ser validada pelo [Register], obtém-se 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. 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]:

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:

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:

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

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

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:

Definamos as restrições pretendidas:

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:

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:

Vamos definir a restrição:

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

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

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:

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

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

- aparece a seguinte janela:

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

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

- preenchemos os vários campos:

o nome DSN da fonte ODBC — pode ser qualquer um | |
o nome do ficheiro BD do Firebird a utilizar — utilize [Browse] para indicar o ficheiro .gbd correspondente | |
identificador a utilizar para se ligar à base de dados | |
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]:

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

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

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

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

- Passemos à etapa seguinte com o [Suivant]:

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

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

- A última etapa pergunta-nos 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-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:

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

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

um nome qualquer. Aqui, utilizámos o nome da fonte 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 | |
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:

o proprietário da fonte ODBC |
- passamos para o painel [Tables]. É solicitada a palavra-passe. Neste caso, é [masterkey]:

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

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

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

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

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

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. | |
identificador a utilizar para iniciar sessão na base de dados | |
a palavra-passe associada a este identificador |
Mais uma vez, um botão [Test Connection] permite verificar a validade das informações:

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

- Ao clicar duas vezes na tabela [ARTICLES], obtém-se acesso aos dados da tabela:

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

- 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:
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:
Descrição | |
| Especifica uma palavra-passe reforçada a atribuir ao login de administrador «sa». |
| 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:
Descrição | |
| 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. |
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 | |
| 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». |
| 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):
- 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:
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]:
![]()
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:
É 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]:

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

Se analisarmos as propriedades deste atalho, verificamos 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 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]:
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:


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:

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


É apresentada a seguinte página de propriedades:
![]() |
portable1_tahe\msde140405 - nome da instância MSDE à qual pretende ligar-se | |
Autenticação do Windows — este modo está sempre disponível e permite que um administrador do computador Windows se ligue ao servidor MSDE | |
Selecione o único grupo de servidores apresentado: [SQL Server Group] |
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, 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]:

Aparece a seguinte janela de informações:

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

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

O site disponibiliza gestores de administração para vários SGBD. Siga a ligação [MS SQL Manager]:

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

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

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

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:

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

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

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

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:

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

- aparece então a seguinte janela:

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

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

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

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

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

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

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

- definamos os seguintes campos:

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:

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:

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

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

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

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:

- Validam-se com o botão [Commit] (não representado). Se voltarmos ao painel [Checks] da tabela [ARTICLES], a nova restrição aparece:

- definimos da mesma forma as restantes restrições para obter, por fim, a seguinte lista:

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

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

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:
![]()
Vamos criar dois artigos:

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:

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

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

- aparece a seguinte janela:

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

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

- preenchemos os vários campos:
o nome da fonte ODBC — pode ser qualquer um | |
pode ser qualquer um | |
nome do servidor MSDE que contém os dados da fonte ODBC |
- criamos o [Suivant] para fornecer novas informações:

- preenchemos os diferentes campos:
indicamos que nos ligaremos à fonte de dados ODBC com um nome de utilizador definido no servidor MSDE | |
login do utilizador | |
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:

- Preenchemos os diferentes campos:
Selecionamos a base [dbarticles] como base predefinida para o utilizador [admarticles] |
- executamos [Suivant] para obter a seguinte nova folha:

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

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

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

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

nome do servidor MSDE ao qual nos ligamos | |
identificador a utilizar para se ligar à base de dados | |
a palavra-passe associada a este identificador | |
a base de dados com a qual se pretende trabalhar |
Um botão [Tester la connexion] permite verificar a validade das informações:

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

- introduzimos-as novamente e executamos o [OK]. A fonte de dados aparece então na janela [Explorateur de serveurs] do Visual Studio:

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

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

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






























