handleiding S(impel)QL bladzijde 1 Inhoudsopgave



Vergelijkbare documenten
SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

Ook op internet wordt gebruik gemaakt van databases, zoals bij Marktplaats en Hyves.

13. Symbool-, Lijnstijlbibliotheek (Resource Editor)... 1

Versie: 0.2. Gebruikershandleiding XOPUS XML-editor

Inhoudsopgave. Orbak Automatisering B.V. pagina: 1

Sneltoetsen Excel 2010

1. Introductie tot SPSS

Symbol for Windows BlissEditor

Query SQL Boekje. Fredrik Hamer

Microsoft Word Selecteren

6. Tekst verwijderen en verplaatsen

Handleiding XML Leesprogramma versie 2.0

Bijlage Inlezen nieuwe tarieven per verzekeraar

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

Excel 2010, H1 HOOFDSTUK 1

HANDLEIDING Q1600 Fashion

Macro s. 4.2 Een macro maken

Een nieuwe presentatie maak je met de sneltoets <Ctrl+N> of via het tabblad,. Vervolgens kies je Lege presentatie en klik je op de knop Maken.

PROS1E1 Handleiding ( ) Kf/Dd/Bd

INSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2

Handleiding Pétanque Competitie Beheer. (versie 1.1) April 2014

Handleiding XML Leesprogramma versie 2.1, juli 2006

Migreren naar Access 2010

6. Het maken van een database

1. Cellen en formules

Van Dale Elektronisch groot woordenboek versie 4.5 activeren en licenties beheren

Je kunt de breedte van een kolom veranderen door de kolomrand te verslepen. Je kunt ook dubbelklikken op een kolomrand.

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at

Technische nota AbiFire Rapporten maken via ODBC

Central Station Versie 2.2,

HOOFDSTUK 1. beginnen met excel

Wat zijn de verschillen tussen SPSS 9 en SPSS 10?

Gebruikershandleiding XOPUS XML-editor

De Basis. Eduscope. Versie 1.0. Vrijdag 18 april Bergerweg KD Sittard

Landelijk Indicatie Protocol (LIP)

Central Station. CS website

Data Definition Language

Koppeling met een database

Opstarten Word 2013 bij Windows 7 Opstarten Word 2016 bij Windows 10

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Zorgmail handleiding. Inhoud

Overige transacties 1 (Excel 2002 en 2003)

Databases - Inleiding

SNELLE INVOER MET EXCEL

15. Tabellen. 1. wat rijen, kolommen en cellen zijn; 2. rijen en kolommen invoegen; 3. een tabel invoegen en weer verwijderen;

6. Reeksen

Handleiding OSIRIS Self Service. Schermen en procedures in OSIRIS voor docenten en studenten

Hoofdstuk 19: Macro s

Van CaseTalk naar een database in SQLite studio

Sparse columns in SQL server 2008

Technische handleiding database ontslagmanagement

Rekenblad (Calc) Invoer van gegevens. Les1: Het programmavenster. De werkmap

GN8 VOOR WINDOWS GEBRUIKERSHANDLEIDING

Handleiding 103: Collecte Database (CDB) voor Wijkhoofden

References. Handleiding. Intelly B.V. En nu verder (documentmanager)

De gebruikersvriendelijke en efficiënte user interface van Oculus

Algemene handleiding 3BM applicatie. Inhoudsopgave

Op het bureaublad staan pictogrammen. Via de pictogrammen kunnen programma s worden gestart en mappen en bestanden worden geopend.

Foto's in de service module

ONLINEADVISEREN.NL ONLINEADVISEREN.NL. Handleiding interactief websysteem ter ondersteuning van online adviseren

SECRETZIP HANDLEIDING

Inhoudsopgave GEBRUIKERSBEHEER... 2 GEBRUIKERS EN PASWOORDEN... 2 GEBRUIKERSRECHTEN... 4 GEBRUIKERSGEGEVENS... 6 GEBRUIKERSMENU...

Selenium IDE Webdriver. Introductie

1. Kennismaken met Impress

Central Station. Handleiding Managementrapportages

Met een mailing of massaverzending kunt u een groot aantal documenten verzenden naar gebruikelijke adressen, die in een gegevensbestand staan.

MWeb 4.0. Handleiding Basis Modules Versie 1.0

Gebruikershandleiding

Via de het tabblad Bestand kun je bijvoorbeeld een nieuwe werkmap maken, werkmappen openen, opslaan en afdrukken.

DATABASEBEHEER IN EXCEL

2 Pagina s binnen TYPO3

CMS Made Simple eenvoudig uitgelegd CMS MADE SIMPLE- Eenvoudig uitgelegd

Sneltoetsen in PowerPoint 2016 voor Windows

25 Excel tips. 25 Handige Excel tips die tijd besparen en fouten voorkomen. Ir. Fred Hirdes. Excel-leren.nl.

Bij het opstarten van Small Basic verschijnt er de onderstaande werkomgeving.

Microsoft Word 365. Weergave AAN DE SLAG MET DIGITALE VAARDIGHEDEN TRAINING: MICROSOFT WORD 365

Gebruikershandleiding XOPUS XML-editor

Microsoft Word Weergave

Export/Import van Straten

Aan de slag met L2S. versie 8

Eindgebruikershandleiding Jira

Handleiding Joomla! 1.5

Van Dale Groot woordenboek van de Nederlandse taal 14 activeren

HANDLEIDING DMS Plugin Installatie, configuratie & werking

AFO 113 Authoritybeheer

Elbo Technology BV Versie 1.1 Juni Gebruikershandleiding PassanSoft

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

Handleiding Zorgverzekeraar Winmens versie 7.29

SGH-A400 WAP browser Handleiding

StabiCAD V Applicatiebeheer

HTA Software - Klachten Registratie Manager Gebruikershandleiding

Handleiding. Loket.nl / Import variabele gegevens

Handleiding Extractie patiëntenbestand

Algemeen. Beschrijving LA5 Systeembeheer. Administratieve applicaties voor tankstation en oliehandel. versie 5.2

Database Structuur via menus

1. Kennismaken met Calc

Inhoudsopgave Voorwoord 5 Nieuwsbrief 5 Introductie Visual Steps 6 Wat heeft u nodig? 6 De volgorde van lezen 7 Uw voorkennis

Enkele tips voor de bediening van deze DVD Belangrijk!

PM Toolbox. Software handleiding. Software bij het boek Projectmanagement door Roel Grit Website:

Transcriptie:

handleiding S(impel)QL bladzijde 1 Inhoudsopgave Inhoudsopgave... 1 Het doel van S(impel)QL... 3 Over de werking van S(impel)QL... 4 De bouwstenen van S(impel)QL... 5 Queries en scripts... 7 Het gebruik van de editor... 9 Betekenis van toetsen en toetscombinaties... 11 Verplaatsen en dupliceren van tekst... 12 Queries of scripts opvragen en bewaren... 13 Queries of scripts wissen... 15 Het gebruik van commentaar... 16 Syntax Highlight gebruiken... 17 Uitvoer als gevolg van een resultaatquery... 18 Uitvoer als gevolg van een mutatiequery... 20 Uitvoer als gevolg van een foutief geformuleerde query... 21 Exporteren naar MS Word... 22 Uitvoer als gevolg van een script... 23 Het gebruik van parameters... 24 Transacties... 26 Datums in Jet SQL... 28 Datumconversie toepassen... 29 Ontwerp van de database... 30 Verbinding maken met een database... 31 Met een wachtwoord beveiligde database... 32 Databasewachtwoord wijzigen... 33 Nieuwe database maken... 34 Onlangs geopende databases... 35 Een verbinding verbreken... 36 Een werkgroepinformatiebestand openen... 37 Een nieuw werkgroepinformatiebestand maken... 39 Informatie over gebruikers en groepen... 40 Gedetailleerde metadata opvragen... 41 Voorbeelddatabase... 42 Metadata van tabellen: ontwerp... 44 Metadata van tabellen: primaire sleutel... 45 Metadata van tabellen: refererende sleutels... 46 Metadata van tabellen: alternatieve sleutels... 47 Metadata van tabellen: check constraints... 48 Metadata van tabellen: indices... 49 Metadata: ontwerp van views... 50 Metadata: ontwerp van procedures... 51 Geschiedenis... 52 Queries uit geschiedenis ophalen... 53 Eén of meerdere queries uit de geschiedenis verwijderen... 54 Geschiedenis wissen... 55 Script genereren... 56 Comprimeren en herstellen... 58 Voorkeurinstellingen... 59 S(impel)QL Help... 63

handleiding S(impel)QL bladzijde 2 Jet SQL Help... 64 Info opvragen... 65 Indicatie van de queryperformance... 66 Twee gelijktijdige sessies op één computer... 67 Het gebruik van de registry van Windows... 68 Gegevenstypen van Jet SQL... 69 Gereserveerde woorden (Jet SQL)... 71 Gereserveerde woorden (VBA-functies)... 73 De auteur... 74

handleiding S(impel)QL bladzijde 3 Het doel van S(impel)QL S(impel)QL is in beginsel een editor voor hetzelfde databasemanagementsysteem (dbms) als waar ook MS Access gebruik van maakt. Dit dbms wordt aangeduid met de naam Jet Engine. Deze Jet Engine communiceert met de buitenwereld door middel van de taal Jet SQL. De kracht van deze taal wordt vaak onderschat en zelfs miskend. Nou is die taal slechts een middel om de Jet Engine te benaderen. Miskenning van de mogelijkheden van Jet SQL staat dan ook gelijk aan een onderwaardering van de mogelijkheden van de Jet Engine. Ook MS Access kent een editor die het mogelijk maakt de Jet Engine rechtstreeks aan te spreken. Deze editor kent een aantal beperkingen. S(impel)QL poogt een oplossing te bieden voor de tekortkomingen die de editor van MS Access vertoont maar wil zich zeker niet opwerpen als concurrent van dit zo bijzonder krachtige pakket waar het gaat om het maken van rapporten en het ontwerpen van invoerschermen. De afkorting SQL staat voor structured query language. Naast de functie van editor voor deze taal kent S(impel)QL een aantal aspecten die bedoeld zijn om de omgang met databases te vergemakkelijken. Deze handleiding beschrijft zowel de editor als deze functionaliteiten. S(impel)QL is bedoeld voor al diegenen die thuis willen raken in de wereld van databases en zich in de taal sql willen bekwamen zonder daarbij kostbare hulpmiddelen te hoeven gebruiken. S(impel)QL veronderstelt slechts de aanwezigheid van de Jet Engine. Dit dbms is onder andere onderdeel van MS Access. Het is dan ook voldoende als MS Access op uw pc geïnstalleerd is om onmiddellijk met S(impel)QL aan de slag te kunnen.

handleiding S(impel)QL bladzijde 4 Over de werking van S(impel)QL S(impel)QL brengt een verbinding met de Jet Engine tot stand door middel van de ADO techniek (ActiveX Data Objects). Via ADO is het echter niet mogelijk om alle metagegevens (gegevens over gegevens) van een database op te vragen; slechts een deel van die gegevens staat via ADO ter beschikking. Daarom gebruikt S(impel)QL naast ADO een tweede techniek (Extended Active Data Objects of ADOX) waarmee de ontbrekende metagegevens achterhaald kunnen worden. Het gebruik van ADO en ADOX naast elkaar vereist twee simultane verbindingen met een database. Dat levert een paar kleine problemen op. Op de eerste plaats kan S(impel)QL tijdens het normale werk (het uitvoeren van queries) de database niet exclusief benaderen. Er zijn immers steeds twee verbindingen aanwezig. Exclusief openen van een database is nauwelijks nodig. Slechts bij wijziging of toekennen van een databasewachtwoord is het een vereiste. Deze situatie is opgelost door als S(impel)QL een sql statement gewaar wordt dat exclusief openen van de database vereist de bestaande verbindingen tijdelijk te sluiten, de database exclusief te openen, de gevraagde bewerking uit te voeren en vervolgens de oorspronkelijke situatie weer te herstellen. De gebruiker merkt van dit alles hoegenaamd niets. Een tweede probleem is de synchronisatie van beide verbindingen. De eerste verbinding die gemaakt wordt bepaalt hoe andere verbindingen de gegevens in de database zien. Er is gekozen voor de meest gangbare manier waarbij andere gebruikers (en dus ook de tweede verbinding) wijzigingen in de database pas gewaar worden nadat deze bevestigd zijn (readcommitted). Nou is de tweede verbinding niet geïnteresseerd in de gegevens zelf maar juist in de metagegevens. Als tijdens een transactie de metagegevens door de eerste verbinding gewijzigd worden krijgt de tweede verbinding deze wijzigingen pas te zien op het moment dat de transactie wordt afgesloten. Om niet te hoeven twijfelen aan de juistheid van de metagegevens is het raadplegen ervan gedurende de tijd dat transacties nog niet afgehandeld zijn onmogelijk.

handleiding S(impel)QL bladzijde 5 De bouwstenen van S(impel)QL De indeling van het hoofdvenster van S(impel)QL bestaat uit vier onderdelen: het uitvoergebied waarin de resultaten van queries en eventuele foutmeldingen en andere mededelingen worden gedaan de sql-editor waarin de queries geformuleerd worden voordat ze aan de Jet Engine worden aangeboden de menubalk waar vrijwel alle functies van het pakket zijn terug te vinden de werkbalk waar de belangrijkste functies van het pakket zijn opgenomen Tussen de sql-editor en het uitvoergebied bevindt zich een scheidingslijn welke in verticale richting binnen zekere grenzen versleept kan worden met de muis. Op die manier laat zich de hoogteverhouding tussen de beide aangrenzende bouwstenen instellen. Het uitvoergebied van S(impel)QL is het deel van het venster waar de respons van de Jet Engine op queries en scripts getoond wordt. De sql-editor is een editor die een query al tijdens het intoetsen analyseert. Alleen queries die zich in de sql-editor bevinden kunnen worden aangeboden aan de Jet Engine. Het is niet mogelijk om ongezien queries ten uitvoer te brengen.

handleiding S(impel)QL bladzijde 6 De menubalk is het centrale deel van S(impel)QL waarmee bijna alle functies van het programma kunnen worden geactiveerd. Voor enkele speciale functies zijn slechts sneltoetsen beschikbaar. Ten behoeve van enkele veelgebruikte functies is voorzien in een werkbalk met daarop knoppen om deze functies te activeren. De knoppen voegen op zichzelf niets toe aan de mogelijkheden van S(impel)QL maar dienen uitsluitend om de toegang tot enkele functies te vereenvoudigen.

handleiding S(impel)QL bladzijde 7 Queries en scripts Het woord query stamt uit het Engels en betekent letterlijk vraag. Het woord duidt op het vragende karakter van sql. In de loop der jaren is men het woord query meer en meer gaan gebruiken als algemene aanduiding van een in sql geformuleerde opdracht. Zo spreekt men van toevoegqueries, bijwerkqueries en verwijderqueries. Het daarin opgenomen meervoud van query heeft niks meer te maken met de oorspronkelijke betekenis van het woord. In S(impel)QL gebruiken we het woord voor elke in sql geformuleerde opdracht die uit precies één statement bestaat. Een script is een verzameling van queries. Nou kan een script uit vele queries bestaan maar er zijn ook scripts van precies één query denkbaar. Een query is dus tevens een script maar een script is niet per definitie een query! Om verwarring te voorkomen reserveert S(impel)QL het woord script voor een reeks sql-statements die uit meer dan één query bestaat. In de meeste sql-dialecten wordt elke query afgesloten met een puntkomma. In S(impel)QL is dat niet nodig. Wanneer sprake is van een script moeten de deeluitmakende queries door middel van een puntkomma van elkaar gescheiden worden. De puntkomma wordt door S(impel)QL gebruikt om de queries één voor één aan de Jet Engine te kunnen aanbieden. Het is dan ook niet nodig maar mag wel om de laatste query van een script af te sluiten met een puntkomma. De illustratie toont twee scripts die door S(impel)QL als identiek worden beschouwd.

handleiding S(impel)QL bladzijde 8 Voor het aanbieden van queries of scripts aan de Jet Engine heeft S(impel)QL drie werkwijzen beschikbaar. U kunt kiezen uit de weg via het menu "Query", "Uitvoeren" de toets van de werkbalk de functietoets F10 Voor alle drie deze mogelijkheden geldt dat ze slechts beschikbaar zijn op momenten dat de sqleditor van inhoud voorzien is.

handleiding S(impel)QL bladzijde 9 Het gebruik van de editor De editor is speciaal ontwikkeld voor het noteren van statements waarbij sommige toetsaanslagen een bijzonder effect vertonen. Enter De cursor wordt als gebruikelijk op de volgende regel geplaatst maar gaat daarbij niet naar het begin van de regel maar naar die positie waar met de vorige regel begonnen werd. Op die manier wordt een fraaie layout van de tekst bereikt zonder dat daarbij onnodig veel spaties moeten worden ingetikt. De afbeelding toont de positie van de cursor vóór en na het bedienen van de entertoets. Tab In een normale editor springt de cursor bij het gebruik van de tabtoets naar vooraf ingestelde posities. In de editor van S(impel)QL worden de tabstops ontleend aan de beginposities van woordjes op de vorige regel. De afbeelding illustreert het gebruik van de tabtoets waarbij de cursorpositie vóór en na de toetsaanslag is weergegeven.

handleiding S(impel)QL bladzijde 10 Als er op deze manier geen tabstops meer te vinden zijn betekent een tabtoets automatisch acht spaties. Backspace De backspacetoets werkt onder op de gebruikelijke manier waarbij de letter die aan de cursor voorafgaat wordt gewist. Wanneer de cursor vlak voor de eerste letter van de tekst van de regel staat (spaties niet meegerekend) is de werking totaal verschillend van het normale patroon en wordt de tekst van de regel zodanig naar voren verplaatst dat hij in lijn is met de voorgaande regel. De afbeelding illustreert de positie van de cursor vóór en na het bedienen van de backspacetoets. Nogmaals de backspacetoets bedienen herhaalt dit voor de regel dáárboven, enzovoorts. Het voorbeeld illustreert hoe de tekst bij gebruik van de backspacetoets zodanig verplaatst wordt dat het woordje WHERE precies onder het woordje SELECT komt te staan.

handleiding S(impel)QL bladzijde 11 Betekenis van toetsen en toetscombinaties Naast de gebruikelijke mogelijkheden van de cursorbesturingstoetsen geldt voor een aantal toetsen en toetscombinaties een bijzondere betekenis. Ctrl Ctrl Ctrl Ctrl Home End Ctrl Home Crtl End Cursor naar beginpositie van volgend woord Cursor naar beginpositie van vorig woord Verticaal scrollen (indien mogelijk) Verticaal scrollen (indien mogelijk) Cursor naar het begin van de regel Cursor naar het eind van de regel Cursor naar het begin van de tekst Cursor naar het eind van de tekst Worden bovenstaande toetsaanslagen gecombineerd met het gebruik van de shifttoets, dan wordt de tekst tussen de huidige en nieuwe cursorpositie geselecteerd of aan een al bestaande selectie toegevoegd. Ctrl A Ctrl X Ctrl C Ctrl V Ctrl Z Ctrl Y Alles selecteren Naar klembord verplaatsen van geselecteerde tekst Naar klembord kopiëren van geselecteerde tekst Vanaf klembord plakken Ongedaan maken tot meer dan 100 niveaus Regel wissen

handleiding S(impel)QL bladzijde 12 Verplaatsen en dupliceren van tekst Geselecteerde tekst kan met behulp van de muis naar een nieuwe positie versleept worden. Wordt daarbij tevens de Ctrl-toets ingedrukt, dan is er sprake van kopiëren.

handleiding S(impel)QL bladzijde 13 Queries of scripts opvragen en bewaren Om een query of script als tekstbestand te bewaren en later weer op te vragen voorziet de werkbalk in de volgende knoppen: Met deze knop opent u een eerder opgeslagen query of script. Doorgaans worden zijn queries of scripts te herkennen aan de extensie.sql maar ook andere extensies zijn mogelijk. De inhoud van het geopende bestand vervangt de eventueel aanwezige inhoud in de sql-editor; de naam van de geopende query of script verschijnt boven de werkbalk. De knop om in de sql-editor aanwezige queries of scripts te bewaren heeft twee betekenissen: opslaan en opslaan als. Welke functie de knop uitvoert is afhankelijk van de aanwezigheid van een benaming boven de werkbalk. Staat daar niets, dan wordt opslaan als uitgevoerd en alsnog om een naam gevraagd. Is daarentegen wel een naam aanwezig, dan zal de query onder die naam worden opgeslagen waarbij de inhoud van het bestaande bestand overschreven wordt.

handleiding S(impel)QL bladzijde 14 De bewerkingen Openen, opslaan en opslaan als van queries en scripts kunnen eveneens via het querymenu worden uitgevoerd.

handleiding S(impel)QL bladzijde 15 Queries of scripts wissen De knop van de werkbalk wist de volledige inhoud van de editor waarbij bovendien een eventueel aanwezige bestandsnaam vlak boven de werkbalk geannuleerd wordt. U begint dan ook met een volstrekt schone lei.

handleiding S(impel)QL bladzijde 16 Het gebruik van commentaar Commentaar in queries of scripts is in S(impel)QL toegestaan. Er zijn twee manieren om queries of een script van commentaar te voorzien. De eerste manier is het gebruik van twee mintekens. Alles tot het einde van de regel wordt opgevat als kanttekening. Bij de tweede manier wordt commentaar ingeleid door de combinatie van een slash en een asterisk (/*). Vanaf daar geldt alles als commentaar totdat de omgekeerde combinatie ontmoet wordt (*/). Commentaar is geen eigenschap van Jet SQL en wordt door S(impel)QL verwijderd vóórdat de query of queries aan de Jet Engine worden aangeboden. Het gebruik van commentaar is uiterst zinvol als een query of script in de vorm van een tekstbestand bewaard wordt. Bij hergebruik kunnen aantekeningen verhelderend werken.

handleiding S(impel)QL bladzijde 17 Syntax Highlight gebruiken De sql-editor herkent een groot aantal woorden dat behoort tot het taaleigene van Jet SQL. Daarnaast worden de functies van Visual Basic for Applications (VBA) die door de Jet Engine ondersteund worden herkend. Beide soorten gereserveerde woorden worden in de editor van S(impel)QL vet weergegeven. Tekstuele constanten, getallen en datumconstanten worden in een blauwe kleur afgebeeld terwijl de kleur rood gereserveerd is voor operatoren en interpunctietekens. Commentaar wordt in een groene kleur weergegeven. De Highlightfunctie is standaard ingeschakeld maar is uit te zetten door gebruik van de menuoptie "Query", "Syntax Highlight" of door middel van de functietoets F8. De functie laat zich op dezelfde manier weer activeren. De in S(impel)QL gebruikte sql-editor en het idee om de syntax te benadrukken zijn gebaseerd op een door Michael Hieke en Martin Waldenburg ontwikkeld principe. Zie ook: Het gebruik van commentaar

handleiding S(impel)QL bladzijde 18 Uitvoer als gevolg van een resultaatquery Als één enkele query wordt uitgevoerd die herkend wordt als een opdracht met een resultaat wordt het resultaat in tabelvorm weergegeven in het uitvoergebied. Queries met een dergelijk resultaat zijn onder ander SELECT-queries en TRANSFORM-queries maar ook geschikte procedures (EXECUTE) kunnen resulteren in een tabel. De breedte van de kolommen wordt in eerste instantie bepaald door het type van de kolom. De Jet Engine reserveert voor kolomexpressies zeer royaal bemeten typen. Als dergelijke expressies zonder meer worden afgebeeld nemen ze de hele breedte van het venster in beslag. Daarom is de kolombreedte naar boven toe begrensd tot een waarde die in S(impel)QL aangeduid wordt met de term initiële kolombreedte. Deze initiële kolombreedte kan in het venster voor de voorkeurinstellingen worden aangepast. U kunt de kolombreedte voor de tabel die zichtbaar is in het uitvoervenster ook rechtstreeks wijzigen door de kolombegrenzing met de muis te verslepen. Als terwijl een resultaat getoond wordt de inhoud van de sql-editor wordt gewijzigd, 'verbleekt' de uitvoer maar blijft evenwel leesbaar. Op dat moment komt de inhoud van het uitvoergebied niet noodzakelijkerwijs overeen met de formulering in de sql-editor.

handleiding S(impel)QL bladzijde 19 De manier waarop datumgegevens in de tabel in het uitvoergebied worden afgebeeld is afhankelijk van het bij de voorkeurinstellingen aangegeven format voor datumweergave. Zie ook: Voorkeurinstellingen

handleiding S(impel)QL bladzijde 20 Uitvoer als gevolg van een mutatiequery Queries die de database kunnen muteren worden ingeleid met INSERT, UPDATE of DELETE. Als het een enkele mutatiequery betreft wordt de respons vlak boven de werkbalk afgebeeld en wordt in het uitvoergebied melding gemaakt van een geslaagde query. De respons naar aanleiding van mutatiequeries in een script verschijnt daarentegen alleen in het uitvoergebied.

handleiding S(impel)QL bladzijde 21 Uitvoer als gevolg van een foutief geformuleerde query In het geval S(impel)QL een fout in de query ontdekt of de respons van de Jet Engine een foutmelding betreft wordt dit aan de gebruiker meegedeeld. Fouten in een queryformulering kunnen onzinnige queries betreffen die met geen mogelijkheid door de Jet Engine verwerkt kunnen worden. Er kunnen in een query bijvoorbeeld als gevolg van tikfouten ook niet herkende woorden staan. Dergelijke woorden worden door de Jet Engine opgevat als parameters en kunnen als dat bij de voorkeurinstellingen is aangegeven alsnog door een constante waarde worden vervangen. Zie ook: Gebruik van parameters

handleiding S(impel)QL bladzijde 22 Exporteren naar MS Word Zolang het tabelvormige resultaat van een query zichtbaar is kan gebruik gemaakt worden van de mogelijkheid om dit resultaat te exporteren naar een afzonderlijk MS Word document. Bij de voorkeurinstellingen kunt u een aantal parameters met betrekking tot het uiterlijk aangeven. Het exporteren zelf gebeurt door de menukeuze "Query", "Exporteren", "MS Word" of met behulp van de functietoets F9. Een voorbeeld van een export: land Ierland België Spanje hoofdstad Dublin Brussel Madrid Andere exportmogelijkheden zijn rechtstreeks door middel van sql-opdrachten te realiseren. Jet SQL kent een vorm van SELECT-queries waarmee resultaten naar HTML of Excel kunnen worden omgezet. Zie ook: Voorkeurinstellingen

handleiding S(impel)QL bladzijde 23 Uitvoer als gevolg van een script In geval de Jet Engine een aantal queries direct na elkaar te verwerken krijgt is in de terminologie van S(impel)QL sprake van een script. In het uitvoervenster verschijnen na elkaar telkens de formulering van de query en de vertaling van de reactie van de Jet Engine. Merk op dat bij selectqueries die deel uitmaken van een script (daar is zelden of nooit een reden voor te bedenken) slechts het aantal rijen dat de query oplevert wordt meegedeeld. Bij foutmeldingen wordt het script niet onderbroken maar wordt de foutmelding in een afwijkende kleur getoond (zie het voorbeeld). Het gebruik van parameters in een script is niet toegestaan. Zie ook: Het gebruik van parameters

handleiding S(impel)QL bladzijde 24 Het gebruik van parameters Als Jet SQL een woord in een query niet herkent als een gereserveerd woord, een tabelnaam, een kolomnaam of iets dergelijks wordt het woord als parameter beschouwd. In de praktijk blijken vele niet herkende woordjes te herleiden te zijn tot fouten bij het intikken van de query. In S(impel)QL kan het gebruik van parameters worden uitgesloten (dat is de standaardinstelling). Een query waarin een parameter (of tikfout) ontdekt wordt, wordt niet uitgevoerd. In plaats daarvan krijgt de gebruiker een foutmelding. Via de voorkeurinstellingen kan worden aangegeven parameters wél te willen toelaten. In geval parametergebruik toegestaan is reageert S(impel)QL op geheel andere wijze waarbij via een dialoogvenster om de actuele waarden voor de parameters gevraagd wordt:

handleiding S(impel)QL bladzijde 25 Bij parameters voor een tekstueel gegevenstype moeten de aanhalingstekens achterwege blijven. Een datumgegeven moet in een voor Windows herkenbaar datumformaat worden opgegeven en is onafhankelijk van de instellingen van S(impel)QL en Jet SQL (dit, in tegenstelling tot het invoeren van datumgegevens in de sql-editor). S(impel)QL staat het gebruik van maximaal 10 parameters per query toe. Parametergebruik bij het uitvoeren van scripts wordt niet ondersteund. Zie ook: Voorkeurinstellingen

handleiding S(impel)QL bladzijde 26 Transacties Elke transactie wordt ingeleid door de sql-opdracht BEGIN TRANSACTION. Zodra de opdracht wordt herkend verhoogt S(impel)QL het transactieniveau. In totaal zijn er 6 van dergelijke niveaus. Zolang geen transacties gestart zijn heeft het transactieniveau de waarde 0 (autocommit). Dit is de normale situatie. Een hogere waarde van het transactieniveau (er is dan sprake van niet afgesloten transacties) wordt op de menubalk van S(impel)QL aangegeven. U verlaagt het transactieniveau met behulp van de instructies COMMIT of ROLLBACK. Probeert u S(impel)QL af te sluiten of een database te sluiten bij een transactieniveau > 0 wordt u door middel van een speciaal venstertje gevraagd welk van beide instructies u toe wilt passen.

handleiding S(impel)QL bladzijde 27 Let op: uw keuze geldt voor alle niveaus. Het is via het afgebeelde venster niet mogelijk per niveau een keuze voor COMMIT of ROLLBACK te maken. Wel kunt u terugkomen op het besluit om de verbinding te verbreken of het programma af te sluiten door het venstertje te annuleren. Daarvoor gebruikt u de escapetoets. Bij een transactieniveau > 0 is een aantal functies van S(impel)QL niet beschikbaar. Dat heeft te maken met het feit dat Jet SQL in tegenstelling tot sommige andere databasemanagementsystemen niet alleen mutaties van tabellen in transacties betrekt maar ook wijzigingen in de structuur van de database. Alle wijzigingen worden pas zichtbaar voor andere verbindingen op het moment dat op transactieniveau 0 is teruggekeerd. S(impel)QL betrekt sommige metadata uit een tweede verbinding. Wanneer er sprake is van openstaande transacties is niet gegarandeerd dat de tweede verbinding de juiste metadata ziet. Niet beschikbaar zijn het ontwerpvenster (F10), de gedetailleerde metadata en de hulpprogramma s. Evenmin kan informatie over groepen en gebruikers worden opgevraagd. Zie ook: Gedetailleerde metadata zichtbaar maken Ontwerp van de database

handleiding S(impel)QL bladzijde 28 Datums in Jet SQL De Jet Engine interpreteert gegevens die tussen #-tekens geschreven zijn als gegevens van het datumtype (DATE). Daarbij wordt uitgegaan van de Amerikaanse notatie. Als voorbeeld nemen we 7 maart 1998. We kunnen die datum op verschillende manieren in Jet SQL noteren. Onder andere als: #7 mar 1998# #7 march 1998# #3-7-1998# #03-07-1998# #03-07-98# De Jet Engine trekt zich daarbij niets aan van de land- en taalinstellingen van Windows maar hanteert zijn eigen beduidend minder flexibele - systeem. Er schuilen een paar addertjes onder het gras. #03-07-1998# wordt geïnterpreteerd als 7 maart; daarentegen is #13-07-1998# weer gewoon 13 juli. Blijkbaar wordt naar een andere systematiek omgeschakeld als interpretatie volgens het Amerikaanse systeem tot een niet bestaande datum leidt. Op het eerste gezicht even onbegrijpelijk is de manier waarop een tweecijferige aanduiding van het jaartal verwerkt wordt. #03-07-25# wordt gezien als 7 maart 2025 terwijl de interpretatie van #03-07- 32# weer 7 maart 1932 is. De Jet Engine maakt gebruik van 30 als een soort draaipunt (pivot). Alles onder 30 wordt geïnterpreteerd als 20xx. Is het tweecijferige jaartal daarentegen groter of gelijk aan dertig wordt het in de vorige eeuw geplaatst en gezien als 19xx. Het pivotjaar is daarbij een vast getal dat niet gewijzigd kan worden. Zie ook Datumconversie toepassen

handleiding S(impel)QL bladzijde 29 Datumconversie toepassen Om Nederlandstalige maandaanduidingen en een Nederlandse volgorde binnen datumgegevens te kunnen hanteren voorziet S(impel)QL is een conversiemogelijkheid. Deze optie is inschakelbaar in het tabblad Editor van het voorkeurenvenster dat opgeroepen kan worden via menuonderdeel Extra, Opties. Standaard is deze optie ingeschakeld. Bij ingeschakelde datumconversie zal S(impel)QL alle als datum genoteerde constanten als Nederlandstalige datum interpreteren en transformeren naar het voor de Jet Engine begrijpelijke formaat. Zodra S(impel)QL ontdekt dat het geen geldige datum betreft, wordt het gegeven onverkort naar de Jet Engine doorgetuurd. Geldige datumaanduidingen voor S(impel)QL (conversie ingeschakeld) zijn gegevens als #2 mrt 04#, #2-3-04#, #02-03-2004#, #2 maart 2004#, #2/3/4#, #2/maart/04#, #2 3 4# enz. #2 mar 04# daarentegen wordt niet als Nederlandstalige datum herkend en derhalve onverkort doorgestuurd naar de Jet Engine die de datum dan alsnog correct interpreteert. Het tabblad Editor biedt bovendien de mogelijkheid om aan te geven wanneer een tweecijferig jaartal in deze of de vorige eeuw geïnterpreteerd met worden. Getallen, kleiner dan of gelijk aan het bij de pivot aangegeven getal, worden in de huidige eeuw geplaatst. Bestaat de aanduiding van het jaar uit 2 cijfers en vormen die cijfers een getal dat groter is dan de pivot, dan wordt het getal geïnterpreteerd als een aanduiding van een jaartal uit de 20 e eeuw. Zie ook: Datums in JetSQL

handleiding S(impel)QL bladzijde 30 Ontwerp van de database Via de optie "Ontwerp tonen" in het menu "Extra" kan de gebruiker beschikken over de namen en de kolomindeling van tabellen en views in de database. Het ontwerp kan eveneens zichtbaar gemaakt worden met behulp van de knop of de functietoets F10. De keuze tussen tabellen en views kan gemaakt worden met de uiterst links op de werkbalk geplaatste knoppen waarna in de combobox de gewenste tabel of view geselecteerd kan worden. Voorwaarde voor het verschijnen van het ontwerpvenster is wel dat er een verbinding met een database tot stand gebracht is waarbij er tevens geen onafgehandelde transacties zijn. Van een compleet lege database kunt u evenmin het ontwerp opvragen. Het ontwerpvenster geeft een samenvatting van de belangrijkste metadata (gegevens over gegevens). Het is mogelijk de tabelnamen en kolomnamen vanaf het ontwerpvenster te verslepen naar de editor. Als de namen spaties bevatten of overeenkomen met een voor Jet SQL gereserveerd woord worden ze daarbij automatisch tussen vierkante haken geplaatst. Om het ontwerpvenster te verbergen kiest u in het menu "Extra", "Ontwerp verbergen". Het ontwerpvenster verdwijnt eveneens door nogmaals de knop F10 te gebruiken. te bedienen of door de functietoets Zie ook: Gedetailleerde metadata zichtbaar maken Gegevenstypen in Jet SQL

handleiding S(impel)QL bladzijde 31 Verbinding maken met een database Vóórdat queries aan een database kunnen worden aangeboden moet eerst een verbinding met die database tot stand worden gebracht. Door in het menuonderdeel "Database" voor de optie "Verbinding maken..." te kiezen kunt u op de in Windows gebruikelijke manier uw keuze maken. In plaats van de aangegeven menukeuze kunt u voor dit doel de sneltoets Ctrl+O gebruiken. In het in de databasewereld gebezigde jargon worden uitdrukkingen als 'verbinden met een database', 'aanmelden bij een database' en 'een database openen' gebezigd. Alle drie deze aanduidingen betekenen hetzelfde. In deze handleiding worden ze door elkaar gebruikt. Om een database te openen kan eveneens gekozen worden uit een lijst met onlangs geopende databases. Een door de Jet Engine gemaakte database heeft doorgaans de extensie ".mdb" maar noodzakelijk is dat niet. U kunt ook een database waarvan het bijbehorende bestand een andere extensie heeft openen. Als de verbinding geslaagd is geeft S(impel)Ql daarvan een eenvoudige mededeling in het uitvoergebied. Tegelijkertijd wordt de naam van de database in de titelbalk getoond. Zie ook: Onlangs geopende databases

handleiding S(impel)QL bladzijde 32 Met een wachtwoord beveiligde database Indien u verbinding zoekt met een door een wachtwoord beveiligde database zal S(impel)QL u om dit wachtwoord vragen. Verwar het begrip databasewachtwoord niet met gebruikerswachtwoord. Een eventueel databasewachtwoord is voor alle gebruikers hetzelfde. Een databasewachtwoord wordt opgeslagen in databasebestand en niet in het werkgroepinformatiebestand. Het aanmelden bij een werkgroep is daarom niet noodzakelijk. Zie ook: Een werkgroepinformatiebestand openen

handleiding S(impel)QL bladzijde 33 Databasewachtwoord wijzigen Het wijzigen van het wachtwoord van een met een wachtwoord beveiligde database of het aanbrengen van een wachtwoord op een onbeveiligde database kan alleen als de database voor exclusief gebruik geopend is. Om het wachtwoord te kunnen wijzigen zal S(impel)QL de gedeelde verbinding met de database tijdelijk verbreken om onmiddellijk daarna de verbinding exclusief tot stand te brengen. Na wijziging van het wachtwoord of als een wijziging onmogelijk is omdat de exclusieve verbinding niet tot stand gebracht kan worden, wordt de oorspronkelijke situatie hersteld. Het is niet mogelijk het databasewachtwoord te wijzigen als er onafgehandelde transacties aanwezig zijn. Tijdens het uitvoeren van een script is het in S(impel)QL niet mogelijk om de database voor exclusief gebruik te openen. Een in een script vervatte sql-opdracht om het databasewachtwoord te wijzigen levert dan ook een foutmelding. Zie ook: Transacties Met een wachtwoord beveiligde database

handleiding S(impel)QL bladzijde 34 Nieuwe database maken Door in het menu "Database", "Nieuw..." te kiezen maakt u een nieuwe (lege) database onder een willekeurige naam. U kunt daarbij kiezen uit Engine Type 4 databases (zoals in Access 97) of Engine Type 5 databases (zoals in Access 2000). Als u geen extensie vermeldt zal S(impel)QL automatisch de extensie.mdb toevoegen. Nadat de database gemaakt is wordt automatisch een verbinding met de nieuwe database tot stand gebracht. Een reeds geopende database wordt gesloten vóórdat het afgebeelde dialoogvenster getoond wordt. Dat betekent dat ook als u de knop Annuleren bedient een bestaande verbinding verbroken is. Het menuonderdeel dat leidt tot het maken van een nieuwe database is niet beschikbaar als er nietafgehandelde transacties zijn.

handleiding S(impel)QL bladzijde 35 Onlangs geopende databases S(impel)QL houdt een lijst bij van maximaal de vijf laatst verbonden databases. Deze lijst (most recently used databases) is zichtbaar in het menuonderdeel Database. De lijst bevat alleen de namen van de betreffende database. Via een tooltip wordt het volledige pad naar de database getoond en wordt tevens in het geval bij de verbinding een werkgroepinformatiebestand werd gebruikt de naam van het werkgroepinformatiebestand en de gebruikersnaam waaronder bij de database werd aangemeld zichtbaar gemaakt. Selecteert u een database uit deze lijst, dan wordt niet alleen de database zelf geopend, maar tevens de betreffende werkgroep waarbij de gebruikersnaam al is ingevuld. U hoeft bij het gebruik van de lijst dan ook niet eerst het werkgroepinformatiebestand te openen. De lijst van onlangs geopende databases kan niet gebruikt worden als de huidige verbinding nietafgehandelde transacties kent. Wanneer een databasebestand en/of het eventueel daarbij behorende werkgroepinformatiebestand verwijderd wordt verdwijnt de aanduiding van deze database vanzelf uit de lijst van onlangs geopende databases. Zie ook: Een werkgroepinformatiebestand openen

handleiding S(impel)QL bladzijde 36 Een verbinding verbreken Slechts in een enkel geval zult u van de menuoptie "Database", "Verbinding verbreken" gebruik hoeven te maken. Dit is slechts nodig wanneer u één van de opties met betrekking tot een werkgroepinformatiebestand wenst te gebruiken en een database geopend is. Op momenten dat u een nieuwe verbinding tot stand brengt of besluit S(impel)QL te verlaten leidt dit automatisch tot het verbreken van een eventueel bestaande verbinding. Voorwaarde daarbij is slechts dat alle transacties van de sessie zijn afgerond. U wordt daartoe vóórdat de verbinding daadwerkelijk verbroken wordt in de gelegenheid gesteld. Zie ook: Transacties Een werkgroepinformatiebestand openen

handleiding S(impel)QL bladzijde 37 Een werkgroepinformatiebestand openen U kunt alleen gebruik maken van de gegevens in werkgroepinformatiebestanden als bij de voorkeurinstellingen de betreffende optie is aangevinkt of als u een database uit de lijst van onlangs geopende databases kiest waarbij een werkgroepinformatiebestand betrokken is. Een werkgroepinformatiebestand bevat gegevens over gebruikersaccounts. Gebruik alleen het werkgroepinformatiebestand van MS Access als u zeer ervaren bent. Creëer liever een nieuw werkgroepinformatiebestand als u wilt experimenteren met gebruikersaccounts. U opent een werkgroepinformatiebestand met behulp van het menuonderdeel Database, Werkgroep openen. Deze menuoptie is alleen zichtbaar als dit bij de voorkeurinstellingen is aangegeven. Vanaf het moment dat een werkgroepinformatiebestand geopend gebeurt het aanmelden bij een database via een dialoogvenster waarin u een gebruikersnaam en een wachtwoord op dient te geven. Als eenmaal een werkgroepinformatiebestand geopend is wijzigt de menuoptie zich in een uitnodiging om het gekozen werkgroepinformatiebestand te sluiten; dit kan alleen op de momenten dat geen verbinding met een database bestaat.

handleiding S(impel)QL bladzijde 38 Let op: als u géén werkgroepinformatiebestand gebruikt wordt u altijd aangemeld als Admin met een leeg wachtwoord. Welke bevoegdheden u in die hoedanigheid hebt hangt af van de privileges die aan Admin zijn toegekend. De naam Admin kan verwarring scheppen: het is weliswaar niet mogelijk om Admin te verwijderen maar wél om hem zijn rechten als administrator te ontnemen. De menuopties met betrekking tot werkgroepinformatiebestanden zijn alleen bereikbaar op momenten dat u niet verbonden bent met een database. Een bestaande verbinding moet eerst verbroken worden. Zie ook: Voorkeurinstellingen Een nieuw werkgroepinformatiebestand maken Onlangs geopende databases Verbinding verbreken

handleiding S(impel)QL bladzijde 39 Een nieuw werkgroepinformatiebestand maken De mogelijkheid om een werkgroepinformatiebestand te creëren vindt u in het menu Database, Nieuwe werkgroep. Deze menuoptie is alleen beschikbaar als bij de voorkeurinstellingen is aangegeven dat het gebruik van dergelijke bestanden is toegestaan. Om van deze menuoptie gebruik te kunnen maken moet eerst een eventuele verbinding met een database worden verbroken. Opmerking: De gebruikelijke extensie van de naam van een werkgroepinformatiebestand is.mdw. Het is mogelijk in S(impel)QL een andere extensie op te geven. U kunt een werkgroepinformatiebestand met een andere extensie dan.mdw echter niet via Database, Werkgroep openen benaderen in S(impel)QL. Zolang het een onderdeel is van één van de verbindingen in de lijst van onlangs geopende databases kunt langs een omweg het werkgroepinformatiebestand aanspreken door de betreffende verbinding opnieuw tot stand brengen. Na sluiten van de database staat het werkgroepinformatiebestand nog steeds tot uw beschikking. Zie ook: Voorkeurinstellingen Een werkgroepinformatiebestand openen Onlangs geopende databases Verbinding verbreken

handleiding S(impel)QL bladzijde 40 Informatie over gebruikers en groepen Indien een gebruiker daartoe geautoriseerd is kan hij informatie over gebruikers en groepen in een werkgroepinformatiebestand opvragen. Hiervoor dienen de toetscombinaties Ctrl+U (gebruikers) en Ctrl+G (groepen). Informatie over gebruikers Informatie over groepen: Het is alleen mogelijk bovenbedoelde informatie op te vragen indien een verbinding met een database via een werkgroepinformatiebestand tot stand gekomen is. Zie ook: Een werkgroepinformatiebestand openen

handleiding S(impel)QL bladzijde 41 Gedetailleerde metadata opvragen U opent het metadatavenster door middel van het menuonderdeel Database, Metadata... of door het indrukken van de toetscombinatie Shift+F10. Metadata zijn gegevens over de gegevens in een database. Zij bevatten de namen van objecten (tabellen, views en procedures). De metadata zoals u die oproept via het menu "Database", "Metadata " zijn ingedeeld in deze drie categorieën die u naar keuze zichtbaar kunt maken door het indrukken van één van de drie knoppen aan de linkerkant van de werkbalk van het metadatavenster. Standaard is de knop voor tabellen ingedrukt bij openen van het metadatavenster en worden de namen van de in de database aanwezige tabellen (m.u.v. de namen van de systeemtabellen) in de combobox geplaatst. Het ontwerp van de daar geselecteerde tabel wordt getoond. Indien u kiest voor "Views" (alleen mogelijk als er daadwerkelijk views in de database gedefinieerd zijn) verschijnen de namen van de aanwezige views in de combobox en wordt automatisch de definitie van de geselecteerde view getoond. Kiest u voor de knop "Procedures" (alleen mogelijk als er daadwerkelijk procedures in de database gedefinieerd zijn) gebeurt iets dergelijks als bij de keuze voor views. Alle voor de metadata afgebeelde screendumps zijn gemaakt naar aanleiding van een voorbeelddatabase. Het oorspronkelijke script van deze voorbeelddatabase is eveneens in deze handleiding opgenomen. U sluit het venster voor de gedetailleerde metadata met behulp van de knop escapetoets te bedienen. of door de Zie ook: Voorbeelddatabase Metadata van tabellen Metadata van views Metadata van procedures

handleiding S(impel)QL bladzijde 42 Voorbeelddatabase Hieronder is het oorspronkelijke script opgenomen dat gebruikt werd om een eenvoudige database te maken ten behoeve van de screenshots voor het zichtbaar maken van metadata. CREATE TABLE apensoort(soort TEXT(20) PRIMARY KEY); INSERT INTO apensoort VALUES('baviaan'); INSERT INTO apensoort VALUES('gorilla'); CREATE TABLE dier(diernr INTEGER PRIMARY KEY, naam TEXT(20) UNIQUE NOT NULL, soort TEXT(20) REFERENCES apensoort(soort), leeftijd INTEGER, geslacht CHAR(1), opmerking TEXT(254) WITH COMPRESSION, CONSTRAINT w1 CHECK(geslacht IN ('m', 'v'))); INSERT INTO dier VALUES(141, 'Harry', 'gorilla', 3, 'm', NULL); INSERT INTO dier VALUES(172, 'Monk', 'baviaan', 6, 'm', 'dominant gedrag'); INSERT INTO dier VALUES(173, 'King Kong', 'gorilla', 7, 'm', NULL); INSERT INTO dier VALUES(177, 'Biddy', 'baviaan', 3, 'v', NULL); INSERT INTO dier VALUES(178, 'Singe', 'gorilla', 12, 'v', 'graag in buitenlucht'); CREATE TABLE inenting(diernr INTEGER REFERENCES dier(diernr) ON DELETE CASCADE, datum DATE NOT NULL, [vet arts] TEXT(30), PRIMARY KEY (diernr, datum)); INSERT INTO inenting VALUES(141, #01-02-2003#, 'van Bronkhorst'); INSERT INTO inenting VALUES(172, #01-02-2003#, 'van Bronkhorst'); INSERT INTO inenting VALUES(141, #03-09-2003#, 'Diepenbroeck'); INSERT INTO inenting VALUES(173, #14-02-2004#, 'Diepenbroeck'); INSERT INTO inenting VALUES(177, #14-02-2004#, 'Diepenbroeck'); INSERT INTO inenting VALUES(178, #14-02-2004#, 'Diepenbroeck'); INSERT INTO inenting VALUES(177, #13-10-2004#, NULL); INSERT INTO inenting VALUES(141, #02-01-2005#, 'van Bronkhorst'); CREATE INDEX entingind ON inenting(datum); CREATE VIEW bavianen AS SELECT * FROM dier WHERE soort = 'baviaan'; CREATE PROCEDURE soortaap AS SELECT * FROM dier WHERE soort = variabel;

handleiding S(impel)QL bladzijde 43 CREATE PROCEDURE ent_datum AS SELECT * FROM inenting ORDER BY datum; CREATE PROCEDURE aantal_per_soort(srt TEXT(20)) AS SELECT COUNT(*) FROM dier WHERE soort = srt;

handleiding S(impel)QL bladzijde 44 Metadata van tabellen: ontwerp Het tabelontwerp wordt zichtbaar met behulp van de kop op de toolbar van het metadatavenster (verwar deze niet de met knop in het hoofdvenster die hetzelfde uiterlijk vertoont; deze laat slechts een beperkt aantal metadata zien). De afgebeelde gegevens hebben betrekking op de geselecteerde tabel. Als de database geen tabellen bevat (en dus volledig leeg is) is wordt dit aangegeven met Als wel een tabel geselecteerd is verschijnen de belangrijkste gegevens over de kolommen van de tabel. De eerste kolom bevat de naam van de kolommen van de geselecteerde tabel. In het geval die naam een spatie bevat of overeenkomt met een in Jet SQL gereserveerd woord is de naam tussen vierkante haken weergegeven. De tweede kolom bevat een omschrijving van het kolomtype. De derde kolom bevat een aanduiding over de acceptatie van nullwaarden. Het betreft hier uitsluitend de NOT NULL constraints. Als een kolom om andere reden geen lege waarde mag bevatten (bijvoorbeeld een kolom die deel uitmaakt van de primaire sleutel) wordt daarover geen mededeling gedaan. De vierde kolom bevat de aanduiding " WITH COMPRESSION " indien de kolom gecreëerd is met de compressieoptie (alleen mogelijk bij alfanumerieke gegevens). Zie ook: Gegevenstypen van Jet SQL Gereserveerde woorden

handleiding S(impel)QL bladzijde 45 Metadata van tabellen: primaire sleutel De primary key van een tabel wordt zichtbaar gemaakt met behulp van de knop. In het geval u kiest voor het zichtbaar maken van de primaire sleutel laat het overzicht de naam en de definitie van de sleutel zien. Bestaat een sleutel uit een combinatie van kolommen, dan worden deze kolommen door middel van één of meerdere komma's van elkaar gescheiden. Als een kolomnaam een spatie bevat of als een kolomnaam overeenkomt met een gereserveerd woord in Jet SQL wordt de kolomnaam tussen vierkante haken weergegeven. Wanneer de naam bij de definitie van de tabel niet expliciet wordt meegedeeld zal Jet SQL zelf een naam kiezen, beginnend met "Index_" en gevolgd door een groep van acht cijfers (hexadecimaal) die op zijn beurt weer gevolgd wordt door twee reeksen van een underscore en vier hexadecimale cijfers. Als de tabel met behulp van MS Access gecreëerd werd herkent u dat vaak aan de naam "primarykey" die door MS Access als een verstekwaarde bij sleutels gehanteerd wordt.

handleiding S(impel)QL bladzijde 46 Metadata van tabellen: refererende sleutels Refererende sleutels (foreign keys) maakt u zichtbaar met de knop. Het voorbeeld toont de manier waarop de gegevens van een refererende sleutel worden weergegeven. Bestaat een refererende sleutel uit een combinatie van kolommen, dan worden deze kolommen door middel van één of meerdere komma's van elkaar gescheiden. Als een kolomnaam een spatie bevat of als een kolomnaam overeenkomt met een gereserveerd woord in Jet SQL wordt de kolomnaam tussen vierkante haken weergegeven. In het voorbeeld is de naam is door de Jet Engine toegekend; een dergelijke naam is te herkennen aan het woordje "Rel_", gevolgd door een groep van acht cijfers (hexadecimaal) die op zijn beurt weer gevolgd wordt door twee reeksen van een underscore en vier hexadecimale cijfers. Door MS Access gegenereerde namen bestaan uit een samenstelling van de namen van beide in de definitie betrokken tabellen. Beide laatste kolommen laten zien hoe de refererende sleutel verder gedefinieerd is. In de vierde kolom kan alleen de waarde "CASCADE" voorkomen. In de vijfde kolom kunnen zowel de aanduidingen "CASCADE" als "SET NULL" zich manifesteren.

handleiding S(impel)QL bladzijde 47 Metadata van tabellen: alternatieve sleutels Alternatieve sleutels worden in Jet SQL gecreëerd met behulp van de constraint UNIQUE of met behulp van het statement dat wordt ingeluid met CREATE UNIQUE INDEX. U kunt de alternatieve sleutels zichtbaar maken met behulp van de knop. Indien de definitie van een alternatieve sleutel met behulp van de constraint UNIQUE aangebracht is waarbij geen constraintnaam werd vermeld zal de Jet Engine zelf een naam genereren. Dergelijke namen beginnen met het woord "Index_", gevolgd door een groep van acht cijfers (hexadecimaal) die op zijn beurt weer gevolgd wordt door twee reeksen van een underscore en vier hexadecimale cijfers.

handleiding S(impel)QL bladzijde 48 Metadata van tabellen: check constraints In de tabel gedefinieerde check constraints worden zichtbaar met behulp van de knop. Wordt aan een check constraint geen naam gegeven door middel van het trefwoord CONSTRAINT, dan zal de Jet Engine een naam toekennen die begint met het woordje "Check_" en gevold wordt door acht hexadecimale cijfers en twee groepjes van een underscore en vier hexadecimale cijfers.

handleiding S(impel)QL bladzijde 49 Metadata van tabellen: indices Om de indices van een tabel zichtbaar te maken gebruikt u de knop. Alle sleutels (primair, refererend en alternatief) worden intern in het databasemanagementsysteem vertegenwoordigt door indices. Afhankelijk van de voorkeurinstellingen worden alle indices zichtbaar of uitsluitend de als zodanig gedefinieerde indices. Met alle indices weergegeven wordt dit: Zie ook: Voorkeurinstellingen Metadata: primaire sleutel Metadata: refererende sleutels Metadata: alternatieve sleutels

handleiding S(impel)QL bladzijde 50 Metadata: ontwerp van views Een view is een afgeleide van tabellen of andere views. U krijgt in het metadatavenster slechts de definitie van de view te zien. Voor kolomnamen en kolomtypen kunt u terecht bij het ontwerpvenster dat u oproept met F10 of via het menu "Extra", "Ontwerp tonen". Sommige procedures worden door de Jet Engine als view beschouwd. Bovenstaande screendump geeft daarvan een voorbeeld. Een viewdefinitie kan onmogelijk een volgordeaanduiding bevatten. In het script van de voorbeelddatabase die hier gebruikt is valt te constateren dat de hier getoonde view oorspronkelijk dan ook als procedure gedefinieerd is.

handleiding S(impel)QL bladzijde 51 Metadata: ontwerp van procedures Het ontwerp van procedures wordt in beeld gebracht met behulp van de knop. Er zijn twee manieren mogelijk waarop de definitie van een procedure getoond wordt. Welke van de twee wordt voorgeschoteld is afhankelijk van de oorspronkelijke definitie. Let op: het is mogelijk dat een oorspronkelijk als procedure gedefinieerd object door de Jet Engine als view wordt opgeslagen.

handleiding S(impel)QL bladzijde 52 Geschiedenis Alle correct uitgevoerde queries worden opgeslagen in de geschiedenis of history. Zolang nog geen geslaagde queries zijn uitgevoerd is de geschiedenis onbereikbaar. De queries in de geschiedenis kunnen worden getoond met behulp van de knop van de werkbalk via het menu "Extra", "Geschiedenis" door middel van de toetscombinatie Ctrl+H Het geschiedenisvenster toont een compleet overzicht van succesvol uitgevoerde queries. Door met de muis over de lijst te bewegen wordt de exacte formulering van de query in de vorm van een tooltip zichtbaar. U sluit het geschiedenisvenster met een druk op of door de escapetoets te gebruiken.

handleiding S(impel)QL bladzijde 53 Queries uit geschiedenis ophalen U kunt op twee manieren queries vanuit de geschiedenis naar de editor brengen: door dubbelklikken op een query uit de geschiedenislijst door het gebruik van de kopieerknop. In het laatste geval worden alle geselecteerde queries gekopieerd naar de editor. Een ononderbroken reeks queries selecteert u met behulp van de shifttoets terwijl u willekeurige queries uit de lijst kunt selecteren door tijdens het selecteren de ctrl-toets ingedrukt te houden. Bij kopiëren van queries uit de geschiedenis naar de editor wordt de hele inhoud van de editor vervangen. U kunt geen queries toevoegen door middel van kopiëren. Het geschiedenisvenster wordt bij kopiëren automatisch gesloten.

handleiding S(impel)QL bladzijde 54 Eén of meerdere queries uit de geschiedenis verwijderen Om één of meerdere queries uit de geschiedenis te verwijderen selecteert u deze queries en drukt op de toets. Meerdere queries selecteert u met de shifttoets (onafgebroken reeks) of door de ctrltoets (willekeurige queries) ingedrukt te houden terwijl u met de muis of cursorbesturingstoetsen de selectie aanwijst. Als na het verwijderen van queries geen enkele query in de geschiedenis resteert wordt het geschiedenisvenster automatisch afgesloten.

handleiding S(impel)QL bladzijde 55 Geschiedenis wissen U wist de complete geschiedenis met behulp van de knop Deze bewerking sluit tevens het geschiedenisvenster. van het geschiedenisvenster.

handleiding S(impel)QL bladzijde 56 Script genereren S(impel)QL biedt via het menu "Extra", "Hulpprogramma's", "Database naar script converteren" de mogelijkheid de database waar u zich hebt aangemeld in de vorm van een script te exporteren (alleen beschikbaar als er geen open transacties aanwezig zijn). Afhankelijk van de voorkeurinstellingen wordt daarbij rekening gehouden met alle in de database aanwezige objecten in de vorm van tabellen, views en procedures. De volgorde van aanmaken van tabellen wordt bepaald door eventueel aanwezige refererende sleutels. In een volgorde van views en procedures is niet voorzien terwijl ook checkconstraints bepalend kunnen zijn voor de volgorde van objectcreatie. In voorkomende gevallen kan de volgorde 'handmatig' worden aangepast. Als bij de voorkeurinstellingen is aangegeven dat de inhoud van tabellen in het script moet worden opgenomen verschijnen de gegevens van het datumtype in een format dat gelijk is aan 'mm-dd-yyyy' als u geen gebruik maakt van datumconversiemogelijkheid van S(impel)QL in het bij de voorkeurinstellingen voor de datumweergave aangegeven format als u wél gebruik maakt van de mogelijkheid tot datumconversie. Het script wordt in de sql-editor geplaatst waarbij een eventueel bestaande inhoud wordt overschreven. Vanuit de editor kan het script als tekstbestand worden opgeslagen. De voorbeelden zijn gemaakt naar aanleiding van de voorbeelddatabase. Telkens wordt slechts een fragment van het script getoond.

handleiding S(impel)QL bladzijde 57 Zie ook: Voorbeelddatabase

handleiding S(impel)QL bladzijde 58 Comprimeren en herstellen Door herhaaldelijk verwijderen van rijen uit een tabel of door een object (tabel, view, procedure of index) in zijn geheel te verwijderen ontstaan als het ware gaten in de database. Door op gezette tijden de optie "Comprimeren en herstellen" in het menu "Extra", "Hulpprogramma's" te kiezen wordt de database weer een aaneengesloten geheel. Tijdens het comprimeren wordt tevens een aantal eventueel in de database voorkomende fouten hersteld. Voor het uitvoeren van comprimeren en herstellen opent S(impel)QL de database tijdelijk exclusief; dat wil zeggen dat de database niet door een ander programma geopend kan worden of al in gebruik mag zijn. Als dat laatste het geval is lukt het comprimeren en herstellen niet en volgt een foutmelding. Nadat comprimeren en herstellen is uitgevoerd wordt de oorspronkelijke situatie hersteld. Comprimeren en herstellen is evenmin mogelijk wanneer de sessie openstaande transacties kent.

handleiding S(impel)QL bladzijde 59 Voorkeurinstellingen Via het menu "Extra", "Opties..." opent u het venster van de voorkeurinstellingen. Door middel van de knop "Toepassen" geeft u aan dat u de gemaakte keuzes gedurende de sessie wilt gebruiken en sluit u het venster automatisch. Door in plaats daarvan de knop "Bewaren en Toepassen" te gebruiken geeft u aan ook bij een volgende sessie van de door u gekozen instellingen gebruik te willen maken. Het venster is opgedeeld in een aantal tabbladen. Voor de betekenis van de diverse mogelijkheden wordt telkens verwezen naar de tekst op de aangegeven bladzijden. Zie ook: Het gebruik van de registry van Windows

handleiding S(impel)QL bladzijde 60 Het tabblad "Database" Zie ook: Het gebruik van parameters Metadata van tabellen: indices Een werkgroepinformatiebestand openen Het tabblad "Weergave" Zie ook: Uitvoer als gevolg van een resultaatquery

handleiding S(impel)QL bladzijde 61 Het tabblad "Editor" Zie ook: Datums in Jet SQL Datumconversie toepassen Het tabblad "Export" Zie ook: Exporteren naar MS Word

handleiding S(impel)QL bladzijde 62 Het tabblad "Help" Zie ook: Jet SQL Help Het tabblad "Script" Zie ook: Script genereren

handleiding S(impel)QL bladzijde 63 S(impel)QL Help Voor S(impel)QL is een helpfunctie beschikbaar indien het bestand S(impel)QL.chm in dezelfde map aanwezig is als die waarin het programma zelf staat. De aanwezigheid van dit helpbestand wordt zichtbaar indien het menu "Help" geopend wordt. De afbeelding laat beide situaties zien. De aanduiding Jet SQL Help kan eventueel ontbreken. Zie Jet SQL help.

handleiding S(impel)QL bladzijde 64 Jet SQL Help S(impel)QL naakt het mogelijk het helpbestand van Jet SQL te gebruiken. Daartoe moet wel de locatie van dat bestand bekend zijn. Bij een standaardinstallatie van Microsoft Office wordt dit bestand in de map 'C:\Program Files\Microsoft Office\Office\1043' geplaatst. Afhankelijk van de geïnstalleerde versie heet dit bestand 'JetSQLxx.chm'. S(impel)QL zoekt in de aangegeven map naar JetSQL40.chm. Als het daar daadwerkelijk wordt aangetroffen wordt dit in het helpmenu zichtbaar. De afbeelding toont beide situaties. U kunt desgewenst een ander helpbestand of een helpbestand dat zich op een andere locatie bevindt kiezen via het tabblad "Help" van het voorkeurenvenster. Let op: de helpfile bevat enkele kleine onvolkomenheden voor wat betreft de correcte syntax van Jet SQL.

handleiding S(impel)QL bladzijde 65 Info opvragen Via het menuonderdeel "Help", "Info" bent u in staat het versienummer en de belangrijkste gegevens over een verbinding op te vragen. Deze laatste betreffen de gebruikersnaam waaronder u bent aangemeld, de volledige naam van de database en eventueel de naam van het aangesloten werkgroepinformatiebestand.

handleiding S(impel)QL bladzijde 66 Indicatie van de queryperformance De queryperformance wordt uitgedrukt in milliseconden en is gelijk aan de tijd die nodig is om een query uit te voeren. In S(impel)QL kan deze queryperformance een vertekend beeld opleveren. Tussen de start van de meting en het eindtijdstip wordt niet alleen de query uitgevoerd maar vinden in Windows talloze processen plaats die een gedeelte van de gemeten tijd voor hun rekening nemen. Alleen bij relatief trage queries is de meting enigszins betrouwbaar. De meting wordt uitgevoerd voor elke geslaagde query die geen onderdeel uitmaakt van een script. Het op honderdsten van seconden afgeronde resultaat is op te vragen met behulp van de toetscombinatie Ctrl+T en verschijnt vlak boven de werkbalk. Om de indicatie van de performance te verbergen gebruikt u nogmaals de toetscombinatie Ctrl+T.