3. Bijlagen
3.1. Een webproject bouwen met Visual Studio.net op XP voor gezinnen
Met Visual Studio.net kunnen verschillende soorten projecten worden gebouwd:

Om een webapplicatieproject te bouwen, kiest men normaal gesproken het type [Application Web ASP.NET]. Voor dit type project is een lokale of externe webserver IIS vereist. Als men op een Windows-computer XP werkt, bestaat deze server niet en is het niet mogelijk om deze te installeren. Men kan dus geen project van het type [Application Web ASP.NET] aanmaken.
Dit probleem kan worden omzeild door enkele kleine ongemakken te accepteren. Het volstaat om:
- de Cassini-webserver te gebruiken in plaats van de IIS-server. Deze is gratis beschikbaar op de website van Microsoft.
- een project van het type [Bibliothèque de classes] te gebruiken in plaats van het project [Application Web ASP.NET]
Laten we een eenvoudig project maken om te laten zien hoe dit in zijn werk gaat.
- Maak een project [Bibliothèque de classes]
![]() | ![]() |
- [Class1.vb] verwijderen

- een nieuw element toevoegen aan het project, van het type [Fichier texte], en het de naam [demo.aspx] geven:
![]() | ![]() |
- het bestand [demo.aspx] wordt herkend als een webpagina en er wordt een pagina-editor aan gekoppeld. Deze editor heeft twee panelen:
- [design] om de pagina grafisch op te bouwen
- [HTML] om toegang te krijgen tot de broncode van de pagina

- ga naar [Affichage/Code] om het codegedeelte VB van de pagina weer te geven. Er gebeurt niets. We hebben geen toegang tot de code VB van de pagina.
- Ga naar het paneel [HTML] en voer de code in die de pagina [demo.aspx] aan de code [demo.aspx.vb] koppelt:

- vraag de controlecode op die bij de pagina hoort via [Affichage code - F7]. U krijgt dan het bestand [demo.aspx.vb]:

- de pagina [demo.aspx] wordt nu herkend als een webpagina [.aspx] met de bijbehorende code [.aspx.vb].
- Laten we teruggaan naar het paneel [Design] van [demo.aspx] en de volgende pagina tekenen:

De pagina bevat tekst en een servercomponent van het type [Label] met de ID [lblHeure].
- Laten we naar het paneel [HTML] gaan. Daar vinden we de volgende code:
<%@ 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>
Deze code is onvolledig vanuit het oogpunt van de QZXW2HTML-syntaxis. Laten we deze aanvullen:
<%@ 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>
- Laten we naar de code [demo.aspx.vb] gaan om daar de controlecode te schrijven die de tijd in de component [lblHeure] zal plaatsen. We zien dat deze niet wordt herkend door Intellisense, de tool die helpt bij het schrijven van code.
- Sluit [demo.aspx] en [demo.aspx.vb] af, nadat je ze eerst hebt opgeslagen, en open ze vervolgens opnieuw. Ga naar de code [demo.aspx.vb]. Deze keer wordt de component [lblHeure] van [demo.aspx] wel herkend door Intellisense in de code [demo.aspx.vb]. Vul de code aan:

- genereer het project met [Générer/Générer demo]. Als het genereren goed verloopt, wordt DLL vervolgens gegenereerd in de map [bin] van het project:

- We zijn klaar om te testen. We configureren de Cassini-server (zie volgende paragraaf) als volgt:

Het doel van de snelkoppeling naar Cassini wordt als volgt gedefinieerd:
"E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /path:"D:\temp\07-04-05\demo" /vpath:"/demo"
het pad naar het uitvoerbare bestand | |
het pad naar de map van het Visual Studio-webproject | |
het bijbehorende virtuele pad |
- Start Cassini. Het pictogram wordt in de taakbalk geplaatst. Klik er met de rechtermuisknop op en selecteer de optie [Show details] om te controleren of de webserver correct is geconfigureerd:

- Open met een browser de pagina die we hebben gemaakt door de URL URL [http://localhost/demo/demo.aspx] op te roepen. We krijgen het volgende resultaat:

We zijn erin geslaagd een webapplicatie te maken in Visual Studio met behulp van:
- een project van het type [bibliothèque de classes]
- de Cassini-webserver
We weten nu hoe we webapplicaties kunnen bouwen op computers die niet over de IIS-server beschikken, zoals het geval is bij Windows-computers met de XP Home Edition.
3.2. Waar vind je de Cassini-webserver ?
Om met het .NET-platform van Microsoft te werken, kun je de Cassini-webserver gebruiken. Deze is beschikbaar via een product met de naam [WebMatrix], een gratis webontwikkelomgeving voor .NET-platforms, beschikbaar op de URL:

We zullen de installatieprocedure van het product nauwlettend volgen:
- het platform .NET (versie 1.1 van maart 2004) downloaden en installeren
- WebMatrix downloaden en installeren
- MSDE (Microsoft Data Engine) downloaden en installeren; dit is een beperkte versie van SQL Server.
Zodra de installatie is voltooid, is het product [WebMatrix] beschikbaar in de geïnstalleerde programma’s:

De link [ASP.NET] Web Matrix start de ontwikkelingsversie IDE van ASP.NET:

De link [Class Browser] start een tool voor het verkennen van klassen .NET:

Om de installatie te testen, starten we [WebMatrix]:
![]() |
Bij de eerste keer opstarten vraagt [WebMatrix] naar de kenmerken van de nieuwe projet.C; dit is de standaardconfiguratie. We kunnen het zo instellen dat dit dialoogvenster bij het opstarten niet verschijnt. Dit bereiken we met de optie [File/New File]. Met [WebMatrix] kunt u sjablonen voor verschillende webtoepassingen maken. Hierboven hebben we met (1) aangegeven dat we een [ASP.ET Page]-toepassing wilden maken, namelijk een webpagina. Met (2) geven we de map aan waarin deze webpagina zal worden geplaatst. In (3) geven we de naam van de pagina op. Deze moet de extensie .aspx hebben. Ten slotte geven we in (4) aan dat we met de taal VB.NET willen werken; [WebMatrix] ondersteunt overigens ook de talen C# en J#. Zodra dit is gebeurd, toont [WebMatrix] een bewerkingspagina voor het bestand [demo1.aspx]. Daar plaatsen we de volgende code:

- Op het tabblad [Design] kun je de webpagina ‘ontwerpen’ die je wilt bouwen. Dit werkt net zoals bij een IDE voor het bouwen van Windows-applicaties.
- Het grafische ontwerp van de webpagina in [Design] genereert HTML-code in het tabblad [HTML]
- De webpagina kan besturingselementen bevatten die gebeurtenissen genereren waarop moet worden gereageerd, bijvoorbeeld een knop. Deze gebeurtenissen worden afgehandeld door VB.NET-code die in het tabblad [Code] wordt geplaatst
- uiteindelijk is het bestand demo1.aspx een tekstbestand waarin code HTML en code VB.NET zijn samengevoegd, het resultaat van het grafische ontwerp dat is gemaakt in [Design], de code HTML die handmatig is toegevoegd in [HTML] en de code VB.NET die in [Code] is geplaatst. Het volledige bestand is beschikbaar op het tabblad [All].
- Een ervaren ASP.ET-ontwikkelaar kan het bestand demo1.aspx rechtstreeks met een teksteditor samenstellen, zonder hulp van een IDE.
Laten we de optie [All] selecteren. We zien dat [WebMatrix] al code heeft gegenereerd:
<%@ Page Language="VB" %>
<script runat="server">
' Paginacode hier invoegen
'
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<!-- Voeg hier inhoud in -->
</form>
</body>
</html>
We gaan hier niet proberen deze code uit te leggen. We zetten hem als volgt om:
<html>
<head>
<title>Démo asp.net </title>
</head>
<body>
Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>
De bovenstaande code is een combinatie van HTML en VB.NET. Deze is tussen de tags <% ... %> geplaatst. Om deze code uit te voeren, gebruiken we de optie [View/Start]. [WebMatrix] start vervolgens de Cassini-webserver op als deze nog niet is gestart

We kunnen de standaardwaarden in dit dialoogvenster accepteren en de optie [Start] kiezen. De webserver is nu actief. [WebMatrix] start vervolgens de standaardbrowser van de computer waarop het programma draait en vraagt om de URL http://localhost:8080/demo1.aspx:

Het is mogelijk om de Cassini-server buiten [WebMatrix] te gebruiken. Het uitvoerbare bestand van de server bevindt zich in <WebMatrix>\<versie>\WebServer.exe, waarbij <WebMatrix> de installatiemap van [WebMatrix] is en <versie> het versienummer:

Laten we een DOS-venster openen en naar de map van de Cassini-server gaan:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003 11:00 53 248 WebServer.exe
...
Laten we [WebServer.exe] zonder parameters starten:
We krijgen een helpvenster te zien:

De applicatie [WebServer], ook wel de Cassini-webserver genoemd, ondersteunt drie parameters:
- /port: poortnummer van de webservice. Dit kan willekeurig zijn. Standaard is de waarde 80
- /path: het fysieke pad naar een map op de schijf
- /vpath: virtuele map die aan de voorgaande fysieke map is gekoppeld. Let erop dat de syntaxis niet /path=pad is, maar /vpath:pad, in tegenstelling tot wat het voorbeeld [Example] in het bovenstaande helpvenster aangeeft.
Laten we het bestand [demo1.aspx] in de volgende map plaatsen:

Laten we de fysieke map [d:\data\devel\webmatrix] koppelen aan de virtuele map [/webmatrix]. De webserver kan als volgt worden gestart:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"
De Cassini-server is nu actief en het pictogram verschijnt in de taakbalk. Als je erop dubbelklikt:

Dan verschijnen de instellingen voor het opstarten van de server. Je hebt ook de mogelijkheid om [Stop] te stoppen of de webserver [Restart] opnieuw te starten. Als je op de link [Root URL] klikt, krijg je de root van de webstructuur van de server te zien in een browser:

Laten we de link [demos] volgen:

en vervolgens de link [demo1.aspx]:

We zien dus dat als de fysieke map P=[d:\data\devel\webmatrix] is gekoppeld aan de virtuele map V=[/webmatrix] en de server op poort 100 draait, dan is de webpagina [demo1.aspx], die zich fysiek in [P\demos] bevindt, lokaal toegankelijk via URL en [http://localhost:100/V/demos/demo1.aspx].
Om te voorkomen dat je via een venster DOS moet gaan om de Cassini-server te starten, kun je een snelkoppeling naar het uitvoerbare bestand van de server maken met eigenschappen die vergelijkbaar zijn met de volgende:

"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\travail\2004-2005\aspnet\webarticles-010405\version3\web" /vpath:"/webarticles" | |
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812" |
3.3. Waar vind je Spring?
De hoofdwebsite van Spring is [http://www.springframework.org/]. Dit is de website van de Java-versie. De .NET-versie die momenteel in ontwikkeling is (april 2005) is te vinden op de url [http://www.springframework.net/].

De downloadpagina is te vinden op [SourceForge]:

Zodra u het bovenstaande zip-bestand hebt gedownload, pakt u het uit:

In dit document hebben we alleen de inhoud van de map [bin] gebruikt:

In een Visual Studio-project waarin Spring wordt gebruikt, moet je altijd twee dingen doen:
- de bovenstaande bestanden in de map [bin] van het project plaatsen
- een verwijzing naar de assembly [Spring.Core.dll] aan het project toevoegen
3.4. Waar vind je Nunit?
De hoofdwebsite van Nunit is [http://www.nunit.org/]. De versie die in april 2005 beschikbaar was, is 2.2.0:

Download deze versie en installeer deze. Tijdens de installatie wordt een map aangemaakt waarin de grafische testversie te vinden is:
Het interessante bevindt zich in de map [bin]:


De pijl hierboven wijst naar het grafische testprogramma. De installatie heeft ook nieuwe items toegevoegd aan de assembly-repository van Visual Studio, die we nu gaan bekijken.
Laten we het volgende Visual Studio-project aanmaken:

De geteste klasse bevindt zich in [Personne.vb]:
Public Class Personne
' privévelden
Private _nom As String
Private _age As Integer
' standaardconstructor
Public Sub New()
End Sub
' eigenschappen gekoppeld aan privévelden
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
' identiteitsreeks
Public Overrides Function tostring() As String
Return String.Format("[{0},{1}]", nom, age)
End Function
' init-methode
Public Sub init()
Console.WriteLine("init personne {0}", Me.ToString)
End Sub
' close-methode
Public Sub close()
Console.WriteLine("destroy personne {0}", Me.ToString)
End Sub
End Class
De testklasse staat in [NunitTestPersonne-1.vb]:
Imports System
Imports NUnit.Framework
<TestFixture()> _
Public Class NunitTestPersonne
' getest object
Private personne1 As Personne
<SetUp()> _
Public Sub init()
' er wordt een instantie van Personne aangemaakt
personne1 = New Personne
' log
Console.WriteLine("setup test")
End Sub
<Test()> _
Public Sub demo()
' schermlog
Console.WriteLine("début test")
' init persoon1
With personne1
.nom = "paul"
.age = 10
End With
' tests
Assert.AreEqual("paul", personne1.nom)
Assert.AreEqual(10, personne1.age)
' schermlog
Console.WriteLine("fin test")
End Sub
<TearDown()> _
Public Sub destroy()
' opvolging
Console.WriteLine("teardown test")
End Sub
End Class
Er zijn een aantal zaken waar u op moet letten:
- de methoden zijn voorzien van attributen zoals <Setup()>, <TearDown()>, ...
- om ervoor te zorgen dat deze attributen worden herkend, moet:
- het project naar de assembly [nunit.framework.dll] verwijst
- de testklasse de naamruimte [NUnit.Framework] importeert
De verwijzing wordt ingesteld door met de rechtermuisknop op [References] te klikken in de oplossingsverkenner:
![]() | ![]() |

De assembly [nunit.framework.dll] moet in de lijst staan als de installatie van [Nunit] goed is verlopen. Dubbelklik op de assembly om deze aan het project toe te voegen:

Zodra dit is gebeurd, moet de testklasse [NunitTestPersonne] de naamruimte [NUnit.Framework] importeren:
De attributen van de testklasse [NunitTestPersonne] moeten vervolgens worden herkend.
- het attribuut <Test()> geeft een te testen methode aan
- het attribuut <Setup()> verwijst naar de methode die vóór elke geteste methode moet worden uitgevoerd
- het attribuut <TearDown()> duidt de methode aan die na elke geteste methode moet worden uitgevoerd
- met de methode Assert.AreEqual kan de gelijkheid van twee entités.Il worden getest er bestaan talrijke andere methoden van het type Assert.xx.
- Het hulpprogramma NUnit stopt de uitvoering van een geteste methode zodra een methode van het type [Assert] mislukt en geeft een foutmelding weer. Anders geeft het een succesmelding weer.
Laten we ons project zo configureren dat het een DLL genereert:

De gegenereerde DLL krijgt de naam [nunit-demos-1.dll] en wordt standaard in de map [bin] van het project geplaatst. Laten we ons project genereren. We krijgen dan in de map [bin]:

Laten we nu het grafische testprogramma Nunit starten. Ter herinnering: dit bevindt zich in <Nunit>\bin en heet [nunit-gui.exe]. <Nunit> verwijst naar de installatiemap van [Nunit]. We krijgen de volgende interface te zien:

Laten we de menuoptie [File/Open] gebruiken om de DLL en [nunit-demos-1.dll] van ons project te laden:

[Nunit] kan automatisch de testklassen detecteren die zich in het geladen bestand DLL bevinden. Hier vindt het de klasse [NunitTestPersonne]. Vervolgens worden alle methoden van de klasse weergegeven die het attribuut <Test()> hebben. Met de knop [Run] kunnen de tests op het geselecteerde object worden gestart. Als dit de klasse [NunitTestPersonne] is, worden alle weergegeven methoden getest. Men kan een specifieke methode laten testen door deze te selecteren en de uitvoering ervan aan te vragen via [Run]. Laten we de uitvoering van de klasse aanvragen:

Een geslaagde test van een methode wordt aangegeven met een groene stip naast de methode in het linkervenster. Een mislukte test wordt aangegeven met een rode stip.
Het venster [Console.Out] aan de rechterkant toont de schermuitvoer die door de geteste methoden wordt gegenereerd. Hier wilden we het verloop van een test volgen:
- regel 1 laat zien dat de attribuutmethode <Setup()> vóór de test wordt uitgevoerd
- de regels 2-3 worden gegenereerd door de geteste methode [demo] (zie de code hierboven)
- regel 4 laat zien dat de attribuutmethode <TearDown()> na de test wordt uitgevoerd
3.5. Waar vind je de SGBD- -versie van Firebird?
De hoofdwebsite van Firebird is [http://firebird.sourceforge.net/]. De downloadpagina biedt de volgende links (april 2005):

De volgende bestanden moeten worden gedownload:
SGBD voor Windows | |
een klassenbibliotheek voor .NET-toepassingen waarmee toegang tot de SGBD mogelijk is zonder gebruik te maken van een stuurprogramma ODBC. | |
het Firebird-stuurprogramma ODBC |
Installeer deze onderdelen. Het bestand SGBD wordt geïnstalleerd in een map waarvan de inhoud er ongeveer als volgt uitziet:

De binaire bestanden bevinden zich in de map [bin]:

hiermee kan SGBD worden gestart/gestopt | |
clientprogramma waarmee databases kunnen worden beheerd |
Let op: standaard heet de beheerder van SGBD [SYSDBA] en is zijn wachtwoord [masterkey]. Er zijn menu's geïnstalleerd in [Démarrer]:

Met de optie [Firebird Guardian] kun je SGBD starten/stoppen. Na het starten blijft het pictogram van SGBD in de Windows-taakbalk staan:
![]() |
Om Firebird-databases aan te maken en te beheren met de opdrachtregelclient [isql.exe], dient u de documentatie te raadplegen die bij het product is geleverd in de map [doc]. Een snellere manier om met Firebird te werken is het gebruik van een grafische client. Een voorbeeld hiervan is IB-Expert, dat in de volgende paragraaf wordt beschreven.
3.6. Waar vindt u IB- Expert?
De hoofdwebsite van Firebird is [http://www.ibexpert.com/]. Op de downloadpagina staan de volgende links:

We kiezen de gratis versie [Personal Edition]. Nadat deze is gedownload en geïnstalleerd, beschikken we over een map die er ongeveer zo uitziet:

Het uitvoerbare bestand is [ibexpert.exe]. Normaal gesproken is er een snelkoppeling beschikbaar in het menu [Démarrer]:

Zodra IBExpert is gestart, verschijnt het volgende venster:

Laten we de optie [Database/Create Database] gebruiken om een database aan te maken:

kan [local] of [remote] zijn. Hier staat onze server op dezelfde machine als [IBExpert]. We kiezen dus [local] | |
gebruik de knop van het type [dossier] in de keuzelijst om het databasebestand aan te wijzen. Firebird slaat de hele database op in één enkel bestand. Dat is een van de voordelen ervan. We verplaatsen de database van de ene computer naar de andere door het bestand simpelweg te kopiëren. Het achtervoegsel [.gdb] wordt automatisch toegevoegd. | |
SYSDBA is de standaardbeheerder van de huidige Firebird-distributies | |
masterkey is het wachtwoord van de beheerder SYSDBA van de huidige Firebird-distributies | |
het te gebruiken dialect SQL | |
als het vakje is aangevinkt, zal IBExpert een link naar de aangemaakte database weergeven nadat deze is aangemaakt |
Als u op de knop [OK] voor het aanmaken klikt, krijgt u de volgende waarschuwing:

dan hebt u Firebird niet gestart. Start het programma. Er verschijnt een nieuw venster:

[IBExpert] kan verschillende SGBD-bestanden verwerken die zijn afgeleid van Interbase. Gebruik de versie van Firebird die u hebt geïnstalleerd |
![]()
Zodra dit nieuwe venster door [Register] is gevalideerd, krijgt men het volgende resultaat:

Om toegang te krijgen tot de aangemaakte database, hoeft u alleen maar op de link te dubbelklikken. IBExpert toont dan een boomstructuur die toegang geeft tot de eigenschappen van de database:

Laten we een tabel aanmaken. Klik met de rechtermuisknop op [Tables] en kies de optie [New Table]. Het venster voor het instellen van de tabeleigenschappen verschijnt:
![]() |
Laten we beginnen met de tabel de naam [ARTICLES] te geven via het invoerveld [1]:
![]() |
Gebruik het invoerveld [2] om een primaire sleutel [ID] te definiëren:
![]() |
Een veld wordt tot primaire sleutel gemaakt door te dubbelklikken op het veld [PK] (Primary Key). Laten we velden toevoegen met de knop [3]:

Zolang we onze definitie niet hebben ‘gecompileerd’, wordt de tabel niet aangemaakt. Gebruik de knop [Compile] hierboven om de definitie van de tabel te voltooien. IBExpert bereidt de query’s SQL voor om de tabel te genereren en vraagt om bevestiging:

Interessant genoeg toont IBExpert de SQL-query's weer die het heeft uitgevoerd. Hierdoor kun je niet alleen de taal SQL leren, maar ook het eventueel gebruikte, mogelijk eigen dialect SQL. Met de knop [Commit] kan de lopende transactie worden bevestigd, met [Rollback] kan deze worden geannuleerd. Hier accepteren we deze met [Commit]. Zodra dit is gebeurd, voegt IBExpert de aangemaakte tabel toe aan de boomstructuur van onze database:

Door op de tabel te dubbelklikken, krijgen we toegang tot de eigenschappen ervan:

Via het venster [Constraints] kunnen we nieuwe integriteitsregels aan de tabel toevoegen. Laten we dit venster openen:

We zien hier de primaire sleutelbeperking die we hebben aangemaakt. We kunnen nog andere beperkingen toevoegen:
- vreemde sleutels [Foreign Keys]
- veldintegriteitsbeperkingen [Checks]
- veld-uniciteitsbeperkingen [Uniques]
Let op:
- de velden [ID, PRIX, STOCKACTUEL, STOKMINIMUM] moeten >0 zijn
- het veld [NOM] moet niet-leeg en uniek zijn
Laten we het paneel [Checks] openen en met de rechtermuisknop klikken in het gedeelte voor het definiëren van beperkingen om een nieuwe beperking toe te voegen:

Laten we de gewenste beperkingen definiëren:

Merk op dat de beperking [NOM<>''] hierboven twee apostrofs gebruikt en geen aanhalingstekens. Compileren we deze beperkingen met de knop [Compile] hierboven:

Ook hier geeft IBExpert nuttige informatie door de query’s SQL weer te geven die het heeft uitgevoerd. Laten we nu naar het paneel [Constraints/Uniques] gaan om aan te geven dat de naam uniek moet zijn:

Laten we de beperking definiëren:

Laten we deze compileren. Als dat gedaan is, openen we het paneel [DDL] van de tabel [ARTICLES]:

Dit paneel geeft de generatiecode SQL van de tabel met alle bijbehorende beperkingen weer. We kunnen deze code in een script opslaan om deze later opnieuw uit te voeren:
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);
Het is nu tijd om gegevens in de tabel [ARTICLES] in te voeren. Laten we daarvoor het bijbehorende paneel [Data] gebruiken:

De gegevens worden ingevoerd door te dubbelklikken op de invoervelden van elke rij in de tabel. Met de knop [+] wordt een nieuwe regel toegevoegd, met de knop [-] wordt een regel verwijderd. Deze bewerkingen vinden plaats in een transactie die wordt bevestigd met de knop [Commit Transaction]. Zonder deze bevestiging gaan de gegevens verloren.
Met IBExpert kunnen SQL-query’s worden uitgevoerd via de optie [Tools/SQL Editor] of [F12]. U krijgt dan toegang tot een geavanceerde SQL-query-editor waarmee u query's kunt uitvoeren. Deze worden opgeslagen, zodat u een eerder uitgevoerde query opnieuw kunt openen. Hier volgt een voorbeeld:

We voeren de query SQL uit met de knop [Execute] hierboven. We krijgen het volgende resultaat:

Hiermee beëindigen we onze demonstraties. De combinatie van IBExpert en Firebird blijkt uitstekend geschikt te zijn om databases te leren kennen.
3.7. Een stuurprogramma installeren en gebruiken ODBC voor [Firebird]
3.8. De driver installeren
De link [firebird-odbc-provider] op de downloadpagina van [Firebird] (paragraaf 3.5) geeft toegang tot een stuurprogramma ODBC. Zodra deze is geïnstalleerd, verschijnt hij in de lijst met geïnstalleerde stuurprogramma’s ODBC.
3.9. Een bron ODBC aanmaken
- Start het hulpprogramma [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

- Het volgende venster verschijnt:

- Laten we met [Add] een nieuwe systeemgegevensbron toevoegen (paneel [System DSN]) die we zullen koppelen aan de Firebird-database die we in de vorige paragraaf hebben aangemaakt:

- We moeten eerst aangeven welke driver ODBC we willen gebruiken. Hierboven kiezen we de driver voor Firebird en vervolgens voeren we [Terminer] uit. De wizard van de Firebird-driver ODBC neemt het vervolgens over:

- we vullen de verschillende velden in:

de naam DSN van de bron ODBC – kan willekeurig zijn | |
de naam van de te gebruiken Firebird-database BD – gebruik [Browse] om het bijbehorende .gbd-bestand aan te duiden | |
gebruikersnaam om verbinding te maken met de database | |
het wachtwoord dat bij deze gebruikersnaam hoort |
Met de knop [Test connection] kunt u de geldigheid van de door ons opgegeven gegevens controleren. Voordat u deze gebruikt, moet u SGBD en [Firebird] starten:

- de wizard ODBC valideren door [OK] zo vaak als nodig uit te voeren
3.10. Test de bron ODBC
Er zijn verschillende manieren om te controleren of een bron ODBC goed werkt. We gebruiken hier Excel:

- laten we de bovenstaande optie [Données -> Données externes -> Créer une requête] gebruiken. We krijgen het eerste venster van een wizard voor het instellen van de gegevensbron te zien. Het paneel [Bases de données] geeft een overzicht van de ODBC-bronnen die momenteel op de computer zijn ingesteld:

- We kiezen de bron ODBC [odbc-firebird-articles] die we zojuist hebben aangemaakt en gaan verder naar de volgende stap met [OK]:

- in dit venster worden de tabellen en kolommen weergegeven die beschikbaar zijn in de bron ODBC. We nemen de hele tabel:

- Laten we doorgaan naar de volgende stap met [Suivant]:

- In deze stap kunnen we de gegevens filteren. Hier filteren we niets en gaan we door naar de volgende stap:

- In deze stap kunnen we de gegevens sorteren. We doen dit niet en gaan verder met de volgende stap:

- In de laatste stap wordt ons gevraagd wat we met de gegevens willen doen. Hier sturen we ze door naar Excel:

- Excel vraagt nu waar we de opgehaalde gegevens willen plaatsen. We plaatsen ze in het actieve werkblad, beginnend bij cel A1. De gegevens worden vervolgens in het Excel-werkblad opgehaald:

Er zijn nog andere manieren om de geldigheid van een bron ODBC te testen. Je kunt bijvoorbeeld de gratis suite OpenOffice gebruiken, die beschikbaar is op de URL [http://www.openoffice.org]. Hier is een voorbeeld met een tekst OpenOffice:
![]() | ![]() |
- Een pictogram aan de linkerkant van het venster van OpenOffice geeft toegang tot de gegevensbronnen. De interface verandert dan en er verschijnt een gebied voor het beheer van de gegevensbronnen:

- Er is één gegevensbron vooraf gedefinieerd, namelijk de bron [Bibliography]. Door met de rechtermuisknop op het gegevensbronnengebied te klikken, kunnen we een nieuwe bron aanmaken met de optie [Gérer les sources de données]:

- Met de wizard [Gestion des sources de données] kunt u gegevensbronnen aanmaken. Door met de rechtermuisknop op het gebied met gegevensbronnen te klikken, kunt u een nieuwe gegevensbron aanmaken met de optie [Nouvelle source de données]:

een willekeurige naam. Hier hebben we de naam van de bron ODBC overgenomen | |
OpenOffice kan verschillende soorten BD verwerken via JDBC, ODBC of rechtstreeks (MySQL, Dbase, ...). Voor ons voorbeeld moeten we ODBC kiezen | |
via de knop rechts van het invoerveld krijgen we toegang tot de lijst met ODBC-bronnen van de machine. We kiezen de bron [odbc-firebird-articles] |
- we gaan naar het paneel [ODBC] om daar de gebruiker in te stellen onder wiens identiteit de verbinding tot stand komt:

de eigenaar van de bron ODBC |
- We gaan naar het paneel [Tables]. Er wordt om het wachtwoord gevraagd. Hier is dat [masterkey]:

- we voeren [OK] in. De lijst met tabellen van de bron ODBC wordt vervolgens weergegeven:

- We kunnen de tabellen definiëren die in het document [OpenOffice] zullen worden weergegeven. Hier kiezen we de tabel [ARTICLES] en voeren we [OK] in. De definitie van de gegevensbron is voltooid. Deze verschijnt vervolgens in de lijst met gegevensbronnen van het actieve document:

- Je kunt de tabel [ARTICLES] hierboven met de muis naar de tekst [OpenOffice] slepen:

3.11. Verbindingsreeks van een Firebird-bron ODBC
- Start Visual Studio en open de serververkenner [Affichage/Explorateur de serveurs]:
![]() |
- klik met de rechtermuisknop op [Connexion de données] en selecteer de optie [Ajouter une connexion]:

- geef in het paneel [Provider] aan dat je een bron ODBC (zie hierboven) wilt gebruiken, en ga vervolgens naar het paneel [Connection]:

kies de bron ODBC in de keuzelijst. De zojuist aangemaakte bron zou nu moeten verschijnen. Gebruik indien nodig [Refresh] om de lijst met bronnen ODBC te vernieuwen. | |
gebruikersnaam om in te loggen op de database | |
het wachtwoord dat bij deze gebruikersnaam hoort |
Ook hier kunt u met de knop [Test Connection] de geldigheid van de gegevens controleren:

- Bevestig de wizard met [OK]. De gegevensbron verschijnt dan in het venster [Explorateur de serveurs] van Visual Studio:

- Door te dubbelklikken op de tabel [ARTICLES] krijgt men toegang tot de gegevens van de tabel:

- Als we met de rechtermuisknop op de koppeling [Firebird Server D:\temp\... ] klikken en de optie [Propriétés] selecteren, krijgen we toegang tot de eigenschappen van de verbinding:

- De verbindingsstring [ConnectString] is een interessante eigenschap om te kennen, omdat de code .NET deze nodig heeft om een verbinding met de database tot stand te brengen. Hier is deze verbindingsstring:
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"
Veel onderdelen van deze verbindingsstring hebben standaardwaarden. We kunnen volstaan met de volgende verbindingsstring:
Hiermee is onze presentatie van de driver ODBC van [Firebird] afgerond.
3.12. Waar vind je de SGBD MSDE?
MSDE is de gratis versie van de SGBD SQL-server van Microsoft. Deze is te vinden op de URL [http://www.microsoft.com/sql/msde/downloads/download.asp]:
![]() |
![]() | ![]() |
Download het installatiebestand en installeer vervolgens SGBD door te dubbelklikken op het gedownloade uitvoerbare bestand. Er verschijnt een venster waarin u wordt gevraagd om de installatiemap te kiezen. De titel is misleidend. Het gaat om een tijdelijke map die daarna kan worden verwijderd:
![]() | ![]() |
Lees het bestand [ReadmeMSDE2000A.htm] aandachtig door. Het installatieprogramma is het hierboven genoemde [setup.exe]. Het wordt via de opdrachtregel gestart, zodat er parameters aan kunnen worden doorgegeven. De belangrijkste zijn de volgende:
Beschrijving | |
| Specificeert een sterk wachtwoord dat moet worden toegewezen aan de beheerderslogin „sa“. |
| Definieert de naam van de instantie. Als INSTANCENAME niet is opgegeven, installeert het installatieprogramma een standaardinstantie. |
Andere parameters die vaak worden gebruikt om een installatie aan te passen, zijn:
Beschrijving | |
| Geeft aan of de instantie netwerkverbindingen accepteert van toepassingen die op andere computers worden uitgevoerd. Standaard, of als u DISABLENTWORKPROTOCOL=1 opgeeft, configureert het installatieprogramma de instantie zo dat deze netwerkverbindingen weigert. Geef DISABLENETWORKPROTOCOLS=0 op om netwerkverbindingen in te schakelen. |
Geeft aan dat de instantie in gemengde modus moet worden geïnstalleerd, dat wil zeggen dat de instantie zowel Windows-authenticatie als SQL-authenticatie ondersteunt voor verbindingen | |
| Geeft de map aan waarin het installatieprogramma de systeemdatabases, foutenlogboeken en installatiescripts installeert. De opgegeven waarde voor chemin_dossier_données moet eindigen met een backslash (\). Voor een standaardinstantie voegt het installatieprogramma MSSQL\ toe aan de opgegeven waarde. Bij een benoemde instantie voegt het installatieprogramma MSSQL$NomInstance\ toe, waarbij NomInstance de waarde is die is opgegeven via de parameter INSTANCENAME. Het installatieprogramma maakt drie mappen aan op de opgegeven locatie: een map Data, een map Log en een map Script. |
| Geeft de map aan waarin het installatieprogramma de uitvoerbare bestanden van MSDE 2000 installeert. De opgegeven waarde voor chemin_dossier_exécutables moet eindigen met een backslash (\). Voor een standaardinstantie voegt het installatieprogramma MSSQL\Binn toe aan de opgegeven waarde. Bij een benoemde instantie voegt het installatieprogramma MSSQL$NomInstance\Binn toe, waarbij NomInstance de waarde is die is opgegeven via de parameter INSTANCENAME. |
Nadat we de bovenstaande installatieaanbevelingen hebben gelezen, gaan we naar de map waar de installatiebestanden zijn uitgepakt en voeren we de volgende opdracht DOS uit (gebruik van SGBD zonder netwerk):
- INSTANCENAME="MSDE140405" – dit wordt de naam van onze MSDE-instantie. Er kunnen meerdere instanties worden geïnstalleerd.
- SECURITYMODE=SQL – het databasemanagementsysteem werkt in de gemengde authenticatiemodus. Zo kun je op twee manieren verbinding maken met MSDE:
- met een Windows-beheerdersaccount
- met een MSDE-account – in dat geval worden een gebruikersnaam en wachtwoord gevraagd. Dit is de modus die moet worden gebruikt in een programma dat verbinding maakt met een database van de SGBD-instantie.
- SAPWD="azerty" – dit is het wachtwoord van de gebruiker van SGBD. De gebruiker [sa] heeft beheerdersrechten op SGBD.
Om SGBD in een netwerk te gebruiken, zou men de volgende opdracht hebben gegeven:
Het installatieprogramma is minimalistisch en wordt zonder enige melding afgesloten... Men kan echter zien dat SGBD is geïnstalleerd via de optie [Menu Démarrer -> Panneau de configuration -> Ajouter et supprimer des programmes]:
![]()
De installatie vindt normaal gesproken plaats in C:\Program Files\Microsoft SQL Server\MSSQL$nomInstance:
![]() | ![]() |
In de map [LOG] van de installatiemap bevindt zich het logbestand van de installatiefase van SGBD. Daarin staat belangrijke informatie: de naam van de instantie MSDE:
Het is belangrijk om deze naam te kennen, omdat alle clients van SGBD deze nodig zullen hebben. Als deze logbestanden ontbreken, kan de naam van een MSDE-server worden achterhaald, namelijk [machine_windows\nom_instance_MSDE]. De naam van de machine is op verschillende plaatsen te vinden. Bijvoorbeeld:
- klik met de rechtermuisknop op [poste de travail] op het bureaublad, kies de optie [propriétés] en vervolgens het paneel [Nom de l'ordinateur]:

Het is nog steeds onduidelijk hoe de server MSDE moet worden gestart. Normaal gesproken is er een snelkoppeling geplaatst in [Démarrer/Démarrage].

Als we de eigenschappen van deze snelkoppeling bekijken, zien we dat het doel als volgt is:
In de map [ C:\Program Files\Microsoft SQL Server] bevinden zich de volgende submappen:

- MSSQL$MSDE140405 is de map van de instantie MSDE die we zojuist hebben geïnstalleerd.
- MSSQL is de map van een eerdere instantie, MSDE. Omdat deze geen naam heeft, noemen we deze de standaardinstantie.
- De map [80] is een gemeenschappelijke map voor de verschillende geïnstalleerde instanties van MSDE. Het doel [sqlmangr.exe] van de snelkoppeling die een instantie van MSDE start, bevindt zich in de map [ 80\Tools\Binn].
Laten we MSDE starten via de snelkoppeling van [Démarrer -> Programmes -> Démarrage]. Er gebeurt vrijwel niets, behalve dat er een pictogram in de statusbalk is verschenen: | Laten we op dit pictogram dubbelklikken: ![]() |
De hier aangeboden server MSDE is de standaardserver [PORTABLE1_TAHE] die op de computer aanwezig is. Ter herinnering: de server MSDE die we hebben geïnstalleerd, [PORTABLE1_TAHE\MSDE140405]. We wijzigen de naam van de server in het daarvoor bestemde veld: ![]() | Als alles goed gaat, moet de instantie [MSDE140405] worden gestart: ![]() |
We kunnen een eerste controle uitvoeren. In dezelfde map als die waarin [sqlmangr.exe] zich bevindt, bevindt zich een consoleclient [osql.exe] waarmee u verbinding kunt maken met een server MSDE en opdrachten SQL kunt uitvoeren. Tijdens de installatie hebben we het wachtwoord [azerty] toegewezen aan de beheerder [sa] van onze server MSDE. Met behulp van de console-client gaan we verbinding maken met de nieuw geïnstalleerde server. Als we het commando [osql -?] uitvoeren, wordt de lijst met mogelijke parameters weergegeven:
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]
Laten we de server [MSDE140405] starten zoals hierboven beschreven, en vervolgens in een DOS-venster [osql] gebruiken om verbinding te maken met de server [portable1_tahe\msde140405] onder de identiteit [sa, azerty]:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL.EXE -U sa -S portable1_tahe\msde140405 -P azerty
1>
De prompt [1>] geeft aan dat [osql] op een opdracht wacht. We zijn correct verbonden. Om [osql] correct te gebruiken, moet u de documentatie van MSDE raadplegen. Deze is beschikbaar in verschillende formaten (pdf, htmlhelp, ...). Deze documentatie is zeer omvangrijk. Over het algemeen geeft men de voorkeur aan een grafische client om met een MSDE-database te werken. Dit wordt iets verderop voorgesteld. Om [osql] af te sluiten, gebruikt men het commando [exit]:
We gaan nu bekijken hoe je databases kunt aanmaken op de nieuw geïnstalleerde MSDE-server. Maar eerst geven we een korte uitleg over een hulpprogramma ([MSDE Manager]) waarmee je de authenticatiemodus van een MSDE-server kunt wijzigen. Als je zo’n server installeert met de standaardinstallatieopties, is de authenticatiemodus van de server namelijk van het type [authentification windows]. Bij dit type authenticatie krijgen alleen gebruikers toegang die op de Windows-machine zijn aangemeld (eventueel via een domein). Voor een programma dat verbinding wil maken met een database om de inhoud ervan te benutten, blijkt deze modus onpraktisch. Dit geldt nog sterker voor Java-toepassingen die via een stuurprogramma toegang krijgen tot de SGBD. In dat geval verdient gemengde authenticatie de voorkeur, die naast de voorgaande authenticatie ook combinaties van gebruikersnaam en wachtwoord accepteert die in de SGBD zijn gedefinieerd. Met de tool [MSDE Manager] kunt u deze bewerking uitvoeren.
3.13. Waar is MSDE Manager te vinden?
[MSDE Manager] is een beheertool voor SGBD en MSDE. Deze is te vinden op URL en [http://www.valesoftware.com/].
We downloaden de gratis versie via de bovenstaande link:


De proefversie is slechts kort geldig. Dat komt goed uit, want we zullen het slechts voor één specifieke handeling gebruiken. We downloaden en installeren het product. Er wordt een snelkoppeling op het bureaublad geplaatst. We gebruiken deze om MSDE Manager te starten. Na de eerste vensters komen we bij dit venster:

- start de server MSDE140405
- u moet als beheerder zijn aangemeld op de Windows-computer
- klik met de rechtermuisknop op de link [SQL Server Group] en kies de optie [New SQL Server Registration]:


Je krijgt dan de volgende eigenschappenpagina te zien:
![]() |
portable1_tahe\msde140405 - naam van de instantie MSDE waarmee u verbinding wilt maken | |
Windows-authenticatie – deze modus is altijd beschikbaar en stelt een beheerder van de Windows-machine in staat om verbinding te maken met de server MSDE | |
selecteer de enige weergegeven servergroep [SQL Server Group] |
Zodra op [OK] is geklikt, wordt de boomstructuur met de eigenschappen van de server MSDE140405 weergegeven:

We zouden nu kunnen beginnen met het aanmaken van databases. Dat gaan we echter niet doen, omdat we een ander product gaan gebruiken, een kloon van het eerder besproken product IBExpert. We gaan alleen de authenticatiemodus van MSDE wijzigen. Laten we met de rechtermuisknop op de bovenstaande server MSDE140405 klikken en de optie [Design] selecteren:

We krijgen het volgende informatievenster te zien:

Het paneel [General] geeft informatie over de server MSDE waarmee we verbonden zijn. De pagina [Security] is degene die ons interesseert:

We moeten hier controleren of de authenticatiemodus van MSDE inderdaad [SQL Server and Windows] is. Zo kunnen we op twee manieren verbinding maken met MSDE:
- met een Windows-beheerdersaccount – dat is hier gedaan
- met een MSDE-account – er wordt dan om een gebruikersnaam en wachtwoord gevraagd. Dit is de modus die moet worden gebruikt in een programma dat verbinding maakt met een database van SGBD.
We bevestigen deze keuze en sluiten MSDE Manager af. We hebben het niet meer nodig. Om MSDE-databases aan te maken, gebruiken we een andere tool: EMS MS SQL Manager.
3.14. Waar vind je EMS , MS en SQL Manager?
EMS MS SQL Manager is een grafische tool waarmee je kunt werken met de SGBD Microsoft SQL Server en dus ook met MSDE. Het lijkt sterk op de eerder beschreven IB-Expert-tool. Het is beschikbaar sinds URL [http://sqlmanager.net/] (april 2005):

De website biedt beheerprogramma's voor talrijke SGBD. Volg de link [MS SQL Manager]:

Hierboven kiezen we de lichtgewichtversie van het product. Download en installeer deze. Je krijgt dan een map die er ongeveer zo uitziet:

Het uitvoerbare bestand is [MsManager.exe]. Normaal gesproken is er een snelkoppeling beschikbaar in het menu [Démarrer]:

Zodra MS SQL Manager is gestart, verschijnt het volgende venster:

Laten we beginnen met het registreren van de server MSDE waarop we willen werken met de optie [Database/Register Host]:
![]() |
Opmerkingen:
- stap 1 - zoals gezegd ondersteunt MSDE twee authenticatiemodi: Windows en SQL Server. In de modus [windows] worden de accounts van de Windows-machine gebruikt. In de modus [SQL Server] worden de accounts van de SGBD gebruikt. [SQL Server] kan werken in de modus [Windows] of in de gemengde modus [Windows, SQL Server]. De authenticatiemodus [Windows] is altijd beschikbaar. De gemengde authenticatiemodus is daarentegen niet altijd actief. We hebben gezien hoe deze kan worden geactiveerd met MSDE Manager. Hierboven is de verbinding tot stand gebracht met een beheerdersaccount.
- stap 2 – na succesvolle authenticatie worden de standaarddatabases van MSDE aangeboden. Hierboven zijn ze allemaal geselecteerd.
![]() |
Opmerkingen:
- stap 3: er kunnen beheeropties voor de geselecteerde databases worden gekozen. Hier zijn de standaard aangeboden opties behouden.
- stap 4: we registreren de server MSDE met de knop [Register]
De server MSDE verschijnt vervolgens in de database-verkenner:

Laten we de optie [Database/Create Database] gebruiken om een database aan te maken:
![]() |
stap 2:
Wanneer deze informatiepagina verschijnt, is de database [dbarticles] aangemaakt. Dit kan worden gecontroleerd met de knop [Test Connect]. In het veld [Database alias] kan naar keuze een tekst worden ingevuld. Hier is het volgende opgegeven:
- de naam van de database
- de naam van de server MSDE waarop deze zich bevindt
- de gebruiker [admarticles] die eigenaar van deze database wordt en zijn wachtwoord [mdparticles]. Deze gebruiker is nog niet aangemaakt, maar zal binnenkort worden aangemaakt.
stap 3:
- met de knop [Register] slaan we de nieuwe database op in [MS SQL Server ]. Na het opslaan staat de database [admarticles] in de lijst met databases. Als je erop dubbelklikt, wordt de boomstructuur van de eigenschappen weergegeven.
![]() | ![]() |
Laten we een nieuwe aanmelding aanmaken die beheerder wordt van de database [admarticles].
- Kies de optie [Tools/Login manager]:

- We zien dat er al twee gebruikers zijn gedefinieerd:
- [BUILTIN\Administrateurs]: deze login maakt gebruik van Windows-authenticatie. Deze vertegenwoordigt de beheerders van de Windows-machine waarop de server MSDE draait
- sa: deze login maakt gebruik van SQL-authenticatie. Dit is standaard de beheerder van de server MSDE. Ter herinnering: door de instellingen bij de installatie van SGBD MSDE is het wachtwoord [azerty].
- Klik met de rechtermuisknop op het login-gedeelte en voeg een nieuwe login toe:
![]() |
- Er verschijnt een invoervenster waarin we de kenmerken van de nieuwe login instellen:

- Loginnaam: admarticles
- Wachtwoord: mdparticles
- Zodra de knop [OK] is ingedrukt, toont MS Manager ons de query's SQL die hij gaat uitvoeren:

De hierboven weergegeven taal SQL is Transact-SQL, de taal SQL van MSDE. We vragen [OK] om deze code uit te voeren
- de nieuwe login wordt toegevoegd aan de lijst met logins:

- in het eigenschappenvenster van de database [dbarticles] klikken we met de rechtermuisknop op [users] om een gebruiker aan te maken met rechten op de database [dbarticles]:

- Vervolgens verschijnt het volgende venster:

- in de keuzelijst [Login] staat de lijst met bestaande logins. We kiezen de login [admarticles].
- In [Name] voer je een gebruikersnaam in. Aan dezelfde login kunnen meerdere gebruikers worden gekoppeld. Ook in MSDE moet er dus eerst een login worden aangemaakt voordat een gebruiker kan worden aangemaakt. Het paneel [User] ziet er dan als volgt uit:

- Laten we nu verdergaan met het venster [Member Of], waarmee we de rechten van onze gebruiker kunnen instellen:

- Ik ben geen regelmatige gebruiker van MSDE en ik weet niet precies wat de verschillende rollen in het linkervenster betekenen. De rol [db_owner] is aantrekkelijk (owner = eigenaar). We kiezen deze dus voor onze gebruiker [admarticles]:

- we bevestigen onze keuzes met de knop [Compile] hierboven. De SQL-verzoeken die bij de uitvoering worden weergegeven, zijn de volgende:

- we compileren deze met [OK]. We hebben nu een gebruiker in de database [dbarticles]:

- Laten we nu een tabel aanmaken. We klikken met de rechtermuisknop op [Tables] en kiezen de optie [New Table]. Er verschijnt dan het venster voor het instellen van de eigenschappen van de tabel:

- Laten we beginnen met de tabel de naam [ARTICLES] te geven via het invoerveld [Table Name]. Laten we vervolgens naar het paneel [Fields] gaan:

- laten we de volgende velden definiëren:

Zolang we onze definitie nog niet hebben ‘gecompileerd’, wordt de tabel niet aangemaakt. Gebruik de knop [Compile] hierboven om de definitie van de tabel te voltooien. [MS SQL Manager] bereidt de query’s SQL voor om de tabel te genereren en vraagt om bevestiging:

Interessant genoeg toont [MS SQL Manager] de query’s SQL die het heeft uitgevoerd. Dit biedt de mogelijkheid om de Transact-SQL-taal te leren. Met de knop [Commit] kunt u de lopende transactie bevestigen, met [Rollback] kunt u deze annuleren. Hier bevestigen we de transactie met [Commit]. Zodra dit is gebeurd, voegt [MS SQL Manager] de aangemaakte tabel toe aan de boomstructuur van onze database:

Door op de tabel te dubbelklikken, krijgen we toegang tot de eigenschappen ervan:

Via het paneel [Checks] kunnen we nieuwe integriteitsbeperkingen aan de tabel toevoegen. Voor de tabel [ARTICLES] gaan we de volgende beperkingen instellen:
- de velden [ID, PRIX, STOCKACTUEL, STOKMINIMUM] moeten >=0 zijn
- het veld [NOM] mag niet leeg zijn
Klik in het paneel [Checks] met de rechtermuisknop op het lege gebied om een nieuwe beperking [New check] toe te voegen:

- Het bewerkingsvenster voor de beperkingen ziet er als volgt uit:

Name: naam van de beperking
Tabel: de tabel waarop de beperking van toepassing is
Definitie: uitdrukking van de beperking
De constraint wordt gecompileerd met de bovenstaande knop [Compile].
- Opnieuw toont [MS SQL Manager] de uitgevoerde SQL-opdrachten:

- we bevestigen deze met de knop [Commit] (niet afgebeeld). Als we teruggaan naar het paneel [Checks] van de tabel [ARTICLES], verschijnt de nieuwe beperking:

- Op dezelfde manier definiëren we de overige beperkingen, waardoor we uiteindelijk de volgende lijst krijgen:

Nu we dit hebben gedaan, openen we het paneel [DDL] van de tabel [ARTICLES]:

Dit paneel geeft de Transact-SQL-code weer voor het genereren van de tabel met alle bijbehorende beperkingen. We kunnen deze code opslaan in een script om deze later opnieuw uit te voeren:
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
Het is nu tijd om wat gegevens in de tabel [ARTICLES] in te voeren. Laten we daarvoor het bijbehorende paneel [Data] gebruiken:

Met de knop [+] kun je een rij toevoegen, met de knop [-] kun je er een verwijderen. De gegevens worden ingevoerd door ze gewoon in de invoervelden van elke rij van de tabel in te voeren. Een rij wordt gevalideerd met de knop [Post Edit] hieronder:
![]()
Laten we twee artikelen aanmaken:

Met [MS SQL Manager] kunt u query's SQL uitvoeren via de optie [Tools/Show SQL Editor] of [F12]. We hebben dan toegang tot een geavanceerde SQL-query-editor waarmee we query's kunnen afspelen. Deze worden opgeslagen, zodat we terug kunnen gaan naar een eerder afgespeelde query. Hier is een voorbeeld:

We voeren de query SQL uit met de knop [Execute] hierboven. We krijgen het volgende resultaat:

Hiermee beëindigen we onze demonstraties. Het paar [MS SQL Manager - MSDE] blijkt, net als het paar [IBExpert - Firebird], ook uitstekend geschikt te zijn voor het leren over databases.
3.15. Een bron aanmaken: ODBC [MSDE]
Het stuurprogramma ODBC voor SQL Server wordt normaal gesproken standaard op Windows-computers geïnstalleerd.
- Start het hulpprogramma [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

- Het volgende venster verschijnt:

- Voeg met [Add] een nieuwe systeemgegevensbron toe (paneel [System DSN]) die we zullen koppelen aan de database MSDE die we in de vorige paragraaf hebben aangemaakt:

- We moeten eerst aangeven welke driver ODBC we willen gebruiken. Hierboven kiezen we het stuurprogramma voor [SQL Server] en vervolgens [Terminer]. De wizard voor het stuurprogramma ODBC van [SQL Server] neemt dan het over:

- we vullen de verschillende velden in:
de naam van de bron ODBC – kan willekeurig zijn | |
mag willekeurig zijn | |
naam van de server MSDE waarop de gegevens van de bron ODBC staan |
- we maken [Suivant] aan om nieuwe informatie toe te voegen:

- we vullen de verschillende velden in:
we geven aan dat we verbinding zullen maken met de gegevensbron ODBC met een gebruikersnaam die is geregistreerd op de server MSDE | |
gebruikersnaam | |
gebruikerswachtwoord |
- Merk op dat we hier voor het eerst de gebruiker (admarticles, mdparticles) gebruiken die in een vorige paragraaf is aangemaakt. We voeren opnieuw [Suivant] uit om het volgende nieuwe blad te verkrijgen:

- We vullen de verschillende velden in:
We selecteren de database [dbarticles] als standaarddatabase voor de gebruiker [admarticles] |
- we voeren [Suivant] in om het volgende nieuwe blad te krijgen:

- we accepteren de standaardwaarden en voeren [Terminer] uit. Hieronder volgt een overzicht van de kenmerken van de bron ODBC die zal worden aangemaakt:

- Met de knop [Tester la source de données] kunnen we de geldigheid van onze gegevens controleren. Controleer of MSDE is gestart en test vervolgens de verbinding:

- we zijn er nu zeker van dat het paar [admarticles, mdparticles] wordt herkend.
Voor aanvullende tests kan de lezer de procedure volgen die wordt uitgelegd in paragraaf 3.10.
3.16. Verbindingsstring voor een database MSDE
- Start Visual Studio en roep de serververkenner [Affichage/Explorateur de serveurs] op:
![]() |
- Klik met de rechtermuisknop op [Connexion de données] en selecteer de optie [Ajouter une connexion]:

- geef in het paneel [Provider] aan dat je een SQL-server als bron wilt gebruiken, en ga vervolgens naar het paneel [Connection]. Let op: hier gebruik je geen stuurprogramma ODBC.

naam van de server MSDE waarmee verbinding wordt gemaakt | |
gebruikersnaam die moet worden gebruikt om verbinding te maken met de database | |
het wachtwoord dat bij deze gebruikersnaam hoort | |
de database waarmee men wil werken |
Met de knop [Tester la connexion] kunt u de geldigheid van de gegevens controleren:

- Bevestig de wizard met [OK]. Vreemd genoeg verschijnt er een nieuw venster waarin om de verbindingsgegevens wordt gevraagd:

- we voeren deze opnieuw in en voeren [OK] uit. De gegevensbron verschijnt dan in het venster [Explorateur de serveurs] van Visual Studio:

- Door te dubbelklikken op de tabel [ARTICLES] krijg je toegang tot de gegevens in de tabel:

- Als we met de rechtermuisknop op de koppeling [portable1_tahe\msde140405.dbarticles.admarticles] in het paneel [Explorateur de serveurs] klikken en de optie [Propriétés] selecteren, krijgen we toegang tot de eigenschappen van de verbinding:

- De verbindingsstring [ConnectString] is een interessante eigenschap om te kennen, omdat de code .NET deze nodig heeft om een verbinding met de database te openen. Hier is deze verbindingsstring:
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
Veel onderdelen van deze verbindingsstring hebben standaardwaarden. We kunnen volstaan met de volgende verbindingsstring:






























