# Handbok &kexi;

## Inledning

&kexi; är ett databashanteringsprogram. Det kan användas för att skapa databaser, infoga data, utföra förfrågningar och behandla data. Formulär kan skapas för att ge ett eget gränssnitt till data. Alla databasobjekt - tabeller, frågor och formulär - lagras i databasen, vilket gör det enkelt att dela data och konstruktion.

&kexi; är en del av &calligra; produktivitetssvit av KDE.

Förutom att &kexi; lagrar dina databaser i filer, kan &kexi; också lagra data på en databasserver. Att använda en databasserver låter dig dela din databas med andra personer, och låter också mer än en person använda databasen samtidigt. Följande databasservrar stöds av &kexi;:

- MySQL

- PostgreSQL

Mer information om &kexi; hittar du på &kexi;s sida på Calligras webbplats, och på &kexi;s egen webbsida.

Om du har några frågor om &kexi; finns det två e-postlistor du kan använda. &kexi;s e-postlista för användare kan utnyttjas för att ställa frågor om hur man använder &kexi;, eller om &kexi; som projekt. &kexi;s e-postlista för utvecklare kan användas för att ställa frågor om utvecklingen av &kexi;. Vidare information om hur man prenumererar på dessa listor, tillsammans med några ytterligare sätt att komma i kontakt med &kexi;s utvecklare, hittar du här.

Denna handbok för &kexi; 2.5 är avsedd att baseras på &kexi;s handbok för Kexi 1.1. Koordinera ert arbete med Jarosław Staniek, e-post: kexi snabela kde.org.

## Grunderna i Kexi

- Databaser i Kexi

- Skapa en ny databasfil

- Huvudfönstret i Kexi

  - Programmets huvuddelar

- Öppna en befintlig Kexi databasfil

  - Öppna en databasfil i dialogrutan Öppna befintligt projekt

  - Öppna en befintlig Kexi databasfil genom att klicka på .kexi-filens ikon

- Använda inbyggd hjälp

### Databaser i Kexi

Många program som OpenOffice.org, LibreOffice eller &Microsoft; Excel skapar filer som kallas dokument. &kexi; skapar också filer, men här kallar vi dem &kexi; databasfiler, eller helt enkelt databasfiler.

Förutom att lagra dina databaser i databasfiler, kan &kexi; också använda databaser på en databasserver, vilket är orsaken till att vi kallar dem databasfiler, och inte helt enkelt databaser.

Termen &kexi; projekt, eller helt enkelt projekt används också för att referera till en &kexi; databas, oberoende av om den lagras i en fil eller på en databasserver.

&kexi; databasfiler har oftast ändelsen `.kexi`

### Skapa en ny databasfil

1. Starta &kexi;, eller om det redan kör, använd Kexi Ny... (Ctrl+N).

2. På sidan Nytt projekt, under avsnittet Tomma projekt, välj Tom databas.

3. På sidan Lagringsmetod, klicka på Fil.

4. På sidan Projektets titel & filnamn, ange en titel och ett filnamn för projektet.

5. Klicka på Nästa för att skapa projektet.

- När du ändrar projektets titel, ändras det föreslagna filnamnet automatiskt i enlighet med dina ändringar.

- Du kan använda filbläddraren för att välja en katalog där du vill spara din databasfil.

### Huvudfönstret i Kexi

Verktygsraden med flikar längst upp ger åtkomst till vanliga åtgärder och kommandon.

Projektnavigatorn och Egenskapseditorn visas i rutor på varje sida om delfönstret Deras storlek kan ändras eller de kan döljas efter behov. En ruta kan döljas genom att klicka på det lilla korset längst upp i rutan (precis under verktygsraden).

Databasobjekt (tabeller, förfrågningar, etc.) som listas i Projektnavigatorn kan öppnas genom att klicka på deras namn (eller dubbelklicka, beroende på de allmänna inställningarna i KDE).

#### Programmets huvuddelar

Huvuddelarna i &kexi;s programfönster är:

Verktygsraden med flikar

- Innehåller tillgängliga kommandon i programmet. Du hittar detaljerade beskrivningar av alla kommandon i appendix.

Projektnavigeringsrutan

- Innehåller en lista med alla objekt (tabeller, förfrågningar, formulär, ...) som skapats i databasprojektet som för närvarande är öppet. Navigeringsrutan innehåller också en liten verktygsrad med de mest användbara kommandona som hör ihop med databasobjekt.

Öppnat databasobjektområde / Flikförsedda fönster

- Ett centralt område i programmet som upptar det mesta utrymmet på skärmen. Användargränssnittet innehåller flikar som går att byta mellan med fönster som alltid är maximerade.

Egenskapseditorns ruta

- Innehåller en lista med egenskaper för databasobjektet som för närvarande är aktivt. För vissa objekt (till exempel grafiska komponenter i ett formulär) kan den bestå av flera flikar.

#### Verktygsrad med flikar

Verktygsraden är stället där du kommer åt de flesta kommandon och åtgärder i &kexi;.

Genom att använda åtgärderna som finns under de olika flikarna på verktygsraden kan du:

- Skapa, öppna, eller stänga Kexi-projekt

- Skapa databasobjekt

- Importera eller exportera data

Beroende på sammanhang kan ytterligare flikar vara synliga:

- Fliken Formulärkonstruktion är synlig om formulärkonstruktion faktiskt används.

- Fliken Rapportkonstruktion är synlig om rapportkonstruktion faktiskt används.

#### Projektnavigeringsrutan

Projektnavigeringsrutan är ett av elementen i &kexi;s huvudfönster som används oftast. Rutan innehåller en lista med alla objekt som skapats i databasprojektet som för närvarande är öppnat i Kexi. Objekten är uppdelade i grupper: tabeller, förfrågningar, formulär rapporter och skript.

Projektnavigeringsrutan innehåller också en liten verktygsrad för kommandon som ofta används (från vänster till höger): Öppna markerat objekt, Konstruera markerat objekt, och Ta bort markerat objekt.

En sammanhangsberoende meny är tillgänglig för alla objekt i listan genom att använda höger musknapp.

Att dubbelklicka med vänster musknapp på objektets namn i listan gör att objektet öppnas i Datavyn. Om objektfönstret redan var öppnat, aktiverar åtgärden bara fönstret utan att byta dess vyläge.

Observera att operativsystemet eller fönsterhanteraren kan vara inställt att hantera enkelklick istället för dubbelklick, använder &kexi; dubbelklick i Projektnavigering för att undvika att öppna stora datamängder eller utföra förfrågningar.

#### Öppnat databasobjektområde / Flikförsedda fönster

När du dubbelklickar på ett objekt i projektnavigeringen öppnas det i området för öppnade databasobjekt. Varje fönster har sin egen flik i &kexi;.

Du kan ordna om flikarna genom att dra och släppa, och stänga dem med knappen längst till höger på fliklisten.

Efter ett tag syns ett alternativ för att koppla loss flikar, vilket ger något i stil med ett flerfönstergränssnitt. Det kan vara behändigt för anpassade lösningar eller flera skärmar.

#### Egenskapsredigeringsrutan

Egenskapsredigeringsrutan låter dig ändra egenskaper för objekt som visas i det aktiva fönstret. Beroende på sammanhanget, består rutan av en eller flera flikar. Den första fliken Egenskaper, som alltid är synlig, innehåller listan med tillgängliga egenskaper.

Regler för användning av Egenskapseditorn:

- Varje rad innehåller en enda egenskap.

- Du kan använda musen eller tangentbordet för att ändra vissa egenskapers värden.

- De oftast använda typerna av egenskapsvärden är:

  - ett tal: du kan skriva in värdet direkt och öka eller minska dess värde genom att klicka med vänster musknapp på pilarna.

  - text

  - kombinationsruta med värden

  - Ja/Nej: du kan ändra värdet genom att klicka på knappen. Ja (sant) betyder att knappen är aktiv, Nej (falskt) betyder att knappen är inaktiv.

- Det är inte nödvändigt att acceptera ett ändrat värde: ändringar blir omedelbart synliga efter att ha gått till en annan rad i egenskapseditorns lista eller genom att trycka på returtangenten.

- Namn på egenskaper som nyligen har ändrats och som ännu inte har lagrats i databasen är markerade med fetstil.

- Efter en egenskaps värde har ändrats, visas en särskild knapp Ångra ändringar till höger i egenskapseditorns lista. Genom att klicka på den kan du återställa egenskapens värde till det ursprungliga värdet som laddades från databasen när databasobjektet öppnades. Knappen är bara synlig när egenskapen är markerat.

Egenskapsredigeringsrutan är tom om:

- inget enstaka databasobjekts fönster är öppnat, eller

- databasens aktiva objektfönster inte erbjuder egenskaper, det är oftast fallet när det är öppnat med Datavy istället för Konstruktionsvy.

### Öppna en befintlig Kexi databasfil

Det finns två sätt att öppna en befintlig &kexi; databasfil:

#### Öppna en databasfil i dialogrutan Öppna projekt

- Kör &kexi;. Du bör se startdialogrutan Välkommen till Kexi, som låter dig välja ett av de senast använda projekten att öppna.

- Om projektet inte visas på sidan med nyss använda projekt, välj Öppna... (&Ctrl;O). Följande dialogruta visas:

- Välj en katalog från platsraden som innehåller filen du letar efter.

- Du kan antingen välja en fil, som öppnas omedelbart, eller skriva in dess namn i rutan Namn: och klicka på Nästa.

Anteckningar

- Normalt har kombinationsrutan Filter: alternativet Alla filer som stöds (*.kexi, *.kexic, *.kexis, *.mdb) inställt. Om filen du letar efter har en annan filändelse, kan du ändra valet i kombinationsrutan Filter: till Alla filer för att visa alla tillgängliga filer (oberoende av filändelse).

- Om du har valt en fil av extern typ som MS Acess `.mdb`-fil, tillhandahåller &kexi; alternativet att importera filen.

- Om du har valt en fil med anslutningsdata (med filändelsen `.kexic`) eller en fil med en genväg till ett projekt på en databasserver (med filändelsen `.kexis`), visar &kexi; lämpliga dialogrutor.

#### Öppna en befintlig Kexi databasfil genom att klicka på .kexi-filens ikon

- Klicka på filens ikon genom att använda filhanteraren eller skrivbordet. &kexi; öppnar automatiskt databasprojektet.

Anteckningar

En anmärkning om databasfiler med fjärråtkomst. Du kanske vill öppna en databasfil som finns på en annan dator (t.ex. en webbserver, en FTP-server eller en delad katalog i MS Windows). KDE låter dig direkt öppna filer från andra datorer i program och spara tillbaka ändringar i källan, men det är inte fallet med databasfiler. Genom att klicka på en databasfil som finns på en annan dator, laddas en kopia av filen ner i en tillfällig katalog på din dator och alla dina ändringar görs i den lokala filen. Originalet på den andra datorn förblir oförändrat, så du rekommenderas att först kopiera (ladda ner) filen till din dator, därefter öppna filen och kopiera tillbaka den till källan på den andra datorn om du vill uppdatera den.

### Använda inbyggd hjälp

Följande sätt att få inbyggd hjälp är tillgängliga i &kexi;:

Handboken i form av ett elektroniskt dokument.

- Handboken är tillgänglig genom att trycka på tangenten F1 eller klicka på i menyraden och välja Hjälp.

Vad är det här? tips.

- Välj Vad är det här? i menyn som dyker upp när du klickar på och klicka därefter på ett område i programmet för att få tips om det.

## Bygga enkla databaser

- Inledning

- Konstruera databastabeller

  - Tabellkonstruktionsfönstret

- Skriv in data i tabeller

- Konstruera databasförfrågningar

- Konstruera formulär

  - Viktiga termer

  - Formulärer eller tabeller?

  - Arbeta med formulärkonstruktion

  - Använda komponentfliken

  - Infoga komponenter - textfält

  - Tilldela datakällor

  - Infoga textetiketter

  - Åtgärder

  - Komponentlayouter

- Mata in data med formulär

### Inledning

För att lära dig grunderna i &kexi;, skulle du först kunna bygga en enkel databas som utnyttjar de mest grundläggande av &kexi;s funktioner. För att förenkla, täcks inte ämnet avancerad databaskonstruktion här.

Starta genom att skapa en ny tom Telefonkatalog.

När du har ett tomt nytt databasprojekt, utför följande steg:

1. Konstruera databastabeller. Läs avsnittet Konstruera databastabeller.

2. Skriva in data i tabeller. Läs avsnittet Skriva in data i tabeller.

3. Konstruera databasförfrågningar. Läs avsnittet Konstruera databasförfrågningar.

4. Konstruera formulär. Läs avsnittet Konstruera formulär.

5. Använd formulär för att mata in data. Läs avsnittet Mata in data med formulär.

### Konstruera databastabeller

Först lägger vi till två tabeller i din databas: `Personer` och `Telefon`. Det är exakt samma tabeller som beskrivs i kapitlet Databaser och kalkylblad. En layout för `Personer` hittar du i avsnittet Dataintegritet och giltighet i det kapitlet.

1. Välj Tabell i verktygsraden. Du kan också använda Skapa objekt: tabell i den sammanhangsberoende menyn för objektet Tabell i projektnavigeringen.

2. Fönstret för tabellkonstruktion visas. Om du tittar längst upp i konstruktionsfönstret ser du att &kexi; föreslår ett generellt namn som Tabell1 för den nya tabellen. Tabellkonstruktionen har inte sparats ännu så du kan tilldela ett lämpligare namn senare. Dessutom, av samma orsak, syns inte tabellnamnet ännu i Projektnavigeringen.

#### Fönstret för tabellkonstruktion

##### Fönstret för tabellkonstruktion har följande kolumner:

- - Ytterligare information om fältet.

- Fältrubrik: Fältnamnet (med andra ord, kolumnnamnet) som kommer att vara synligt vid inmatning av data.

- Datatyp: en kombinationsruta som innehåller en lista med datatyper, som gör det möjligt att ange en huvudregel för inmatning av data i ett givet fält. Om till exempel datatypen heltal anges för ett fält, kan inte användare av databasen skriva in en bokstav i fältet.

- Kommentarer: Här kan du skriva in vilken information som helst som är användbar för att förstå vad det givna fältet tillhandahålls för. Den här extra texten sparas i tabellkonstruktionen och är bara synlig i konstruktionsläge.

I fönstret Tabellkonstruktion, motsvarar varje rad ett enda fält i tabellen. Du märker att du är i konstruktionsläge eftersom knappen Konstruktion är markerad på verktygsraden i tabellkonstruktionens fönster.

##### Konstruera Persontabellen

Klicka på cellen i kolumnen Fältrubrik i första raden och skriv in `namn` som fältrubrik. Att fylla i fältet Fältrubrik fyller automatiskt i fältet Namn som visas i rutan Egenskapseditor.

Anmärkningar om fältnamn och rubriker

- Varje tabellfält måste ha ett namn och en rubrik, de kan inte vara tomma.

- Fältnamn är ett ord som används av databasen, och syns oftast inte för användare av databasprogrammet. Namnet får inte innehålla specialtecken (landspecifika, som å, ä, ±, ¶, Ü eller blanktecken. Namnet får bara innehålla romerska bokstäver, siffror, och understreck (_). Använd det senare istället för blanktecken eller streck.

- Fältnamn måste inledas med en bokstav eller ett understreck _, aldrig med en siffra.

- Det har ingen betydelse om du använder små eller stora bokstäver. &kexi; betraktar fältnamnet `Personer` som exakt detsamma som `personer`.

- Fältrubriken tillåter å andra sidan att du skriver in vilka bokstäver och specialtecken som helst. Den visas för användaren av databasprogrammet.

Skriv in följande fält i tabellkonstruktionen på samma sätt:

- `efternamn`

- `gatuadress`

- `gatunummer`

- `postort`

Alla ovanstående fält utom `gatunummer` har typen text. Ändra fälttypen för `gatunummer` till heltal. För att göra det, klicka på en cell i kolumnen Datatyp, raden gatunummer och klicka på kombinationsrutans knapp (du kan också trycka på F4). Listan med datatyper visas. Du kan också använda piltangenten upp för att välja en annan typ. Välj typen Heltal.

Från och med nu accepterar fältet `gatunummer` bara heltal.

Konstruktionen av tabellen Personer är klar. Klicka på knappen Data i verktygsraden för att avsluta konstruktionen och byta till Datavy för tabellen. Det gör det möjligt att skriva in data i tabellen.

Eftersom konstruktionen ännu inte har sparats i databasen, visas dialogfönstret Spara objekt som. Du måste ange den nya tabellens namn.

&kexi; erbjuder ett generellt namn, som Tabell1. För att ändra namnet, skriv `Personer` i fältet Bildtext, och tryck Enter eller klicka på knappen Ok. Fältet Rubrik kommer att användas för att visa tabellen för databasens slutanvändare, t.ex. ett formulär. Till skillnad från namnet kan rubriken innehålla vilka tecken som helst.

Observera att när du fyller i fältet Rubrik kommer fältet Namn automatiskt fyllas i. För din bekvämlighet följs regeln om att bara använda bokstäver, siffror, och tecknet _. Du kan ändra innehållet i fältet Namn, om du vill.

1. Du blir tillfrågad om att gå med på att automatiskt lägga till en primär nyckel i tabellen. Klicka på knappen Lägg till primär nyckel för att fortsätta.

2. Tabellen `Personer` har skapats och öppnats i datavyn. Dess namn visas i rutan Projektnavigering.

3. Skapa tabellen `Telefon` på liknande sätt som tabellen `Personer`.

4. Skapa fältet `person` av typen Heltal och `telefon` av typen Text. Använd inte heltalstypen här, eftersom telefonnummer kan ha många olika former och prefix.

5. Klicka på knappen Data på verktygsraden och skriv in rubriken `Telefon` för tabellen. Tillåt att &kexi; automatiskt skapar en primär nyckel, som för den tidigare tabellen.

### Skriva in data i tabeller

Du har konstruerat de två tabellerna `Personer` och `Telefon`. Ingen av dem innehåller ännu någon data. Du kan skriva in den, och du får lära dig hur man gör det snabbt och effektivt i detta kapitel.

Börja med tabellen `Personer`. Öppna den i datavyn genom att använda Öppna med den sammanhangsberoende menyn i Projektnavigering, eller knappen i verktygsraden. Den aktuella cellen markeras med en (oftast svart) tjockare kant, en cellmarkör. Eventuellt innehåll markeras med en annan färg. Den aktuella raden, dvs. den du har placerat din rektangulära markör i, markeras till vänster med en pilsymbol.

Du kan förflytta dig mellan tabellcellerna med piltangenterna, och med tangenterna Page Down, Page Up, Home och End. Du kan också klicka med musen på en cell för att markera den.

Från början, efter att tabellen `personer` har öppnats, är markören placerad i kolumnen `identifikation`. Kolumnen har egenskapen automatisk numrering definierad, markerad med blå text på den sista raden (automatisk numrering). Det betyder att du inte behöver skriva in värden för hand i den när du skriver in data på en ny rad, eftersom cellen automatiskt fylls i med nästföljande nummer.

Att infoga nya rader och mata in data för dem i &kexi; är skiljer sig från hur man gör det i kalkylblad. För att mata in data på en ny rad måste du använda piltangenterna eller musen för att flytta markören till den speciella tomma sista raden, som är markerad med ett plustecken. Placera markören i (den andra) kolumnen `namn` och skriv in ett namn. Skriv också in efternamn, gatuadress, och stad. När du är färdig, flytta cellmarkören till den sista tomma raden, antingen med nedåtpilen eller genom att klicka på den sista raden med musen för att lägga till en ny rad.

#### Detaljinformation om tillgängliga åtgärder vid inmatning av data i tabeller

- Så snart du matar in det första tecknet, anses aktuell rad som redigerad. En pennsymbol visas på vänster sida i datatabellen.

- Att dubbelklicka på en cell med vänster musknapp, eller trycka på Enter eller F2, börjar också redigera den aktuella raden.

- Att trycka på tangenten Esc när innehållet i en cell redigeras ångrar ändringarna som gjorts i cellen. Dock försvinner inte pennsymbolen, eftersom du fortfarande kan gå till en annan cell på den redigerade raden för att ändra dess innehåll. För att ångra ändringar som gjorts på hela den redigerade raden, tryck på tangenten Esc igen.

- Istället för att trycka på Esc kan du klicka på knappen Avbryt poständringar i verktygsraden.

- Tryck på tangenterna &Shift;Enter för att bekräfta ändringarna av alla celler på den aktuella redigerade raden.

Fyll i tabellen `Telefon` med data. Du måste tillhandahålla numret `identifikation` för en befintlig person i tabellen `Personer` i kolumnen `personer`.

### Konstruera databasfrågor

Det huvudsakliga syftet med en databas är att lagra och hjälpa till att få fram information du söker efter. I motsats till databaser på skrivna papper, tillåter en &kexi; databas att du anger fler sökbegrepp. Resultat returneras snabbare även för stora datamängder. Allt detta är möjligheter som finns hos databaser, men för att kunna göra en effektiv förfrågan i databasen, måste man dock lära sig hur man talar om för databasen vad man söker efter.

Du kan begränsa data från databasen till en fördefinierad uppsättning rader och kolumner med en databasförfrågan, samt dynamiskt sammanfoga data som kommer från flera tabeller.

För att se hur förfrågningar fungerar i praktiken kommer du skapa en kontaktförfrågan, som sammanfogar data från två tabeller: `Personer` och `Telefon` (konstruerad här och fylld med data här).

1. Skapa en ny tom förfrågan genom att välja Förfrågan i verktygsraden. Konstruktionsfönstret visas. Fönstret är uppdelat i två områden: förfrågningsrelationer längst upp och förfrågningskolumner nedanför.

2. Välj tabellen `Personer` i kombinationsrutan Tabell: längst upp i fönstret, och klicka på knappen Infoga. En grafisk representation av tabellen visas i relationsområdet. Gör samma sak med tabellen `Telefon` för att också infoga den.

3. Lägg till förfrågningsrelationer genom att använda musens drag och släpp-teknik: klicka på fältet `identifikation` i tabellen `personer`, drag och släpp det på fältet `person` i tabellen `Telefon`. Det sammanfogar båda fälten genom att skapa en ny relation.

4. Dubbelklicka på fältet `namn` i tabellen `Personer` för att lägga till fältet som en förfrågningskolumn. Lägg till fälten `efternamn`, `gatuadress`, `gatunummer`, `postort` från `Personer` och `telefon` från tabellen `Telefon` på liknande sätt.

5. Konstruktionen av förfrågan är nu klar att provas. Klicka på knappen Data i verktygsraden för att byta från konstruktion till visning av data som tillhandahålls som resultat av förfrågan.

6. Spara konstruktionen av din förfrågan genom att klicka på knappen Spara i verktygsraden. Eftersom förfrågan ännu inte sparats, blir du tillfrågad om att ange ett namn på den. Skriv in texten `Kontakter` i bildtextfältet och klicka på knappen Ok.

### Konstruera formulär

- Viktiga termer

- Formulärer eller tabeller?

- Arbeta med formulärkonstruktion

- Använda komponentfliken

- Infoga komponenter - textfält

- Tilldela datakällor

- Infoga textetiketter

- Åtgärder

- Komponentlayouter

#### Den viktigaste terminologin

Formulär

- Ett fönster som tillhandahålls för att enkelt mata in och presentera data på datorskärmen.

Formulärets datakälla

- Databastabell eller förfrågan som tillhandahåller data som visas i formuläret. Datakällan behövs, eftersom själva formulären bara är verktyg för att visa och mata in data, medan tabeller och förfrågningar är datakällor. Nya, tomma, formulär har ingen tilldelad datakälla, så de visar ingen data från databasen om du inte tilldelar en datakälla till dem.

Formulärfält

- Direkt ekvivalent till en kolumn i en tabell eller förfrågan. Fält för att visa text och tal är de som oftast används. Att skriva in ett nytt värde eller ändra befintligt värde i ett sådant fält orsakar en ändring i den anslutna tabellen eller frågekolumnen (efter ändringen har accepterats).

Formulärkonstruktion

- Aktiviteter du utför för att definiera utseendet och funktionen hos formuläret. För att göra det måste du tillhandahålla en datakälla, infoga formulärfält av diverse typer, och placera dem på lämpliga ställen.

Grafisk formulärkomponent

- Formulärets element. De huvudsakliga typerna av grafiska komponenter är:

  - Grafiska komponenter som visar information, t.ex. en textruta eller en bildruta. Varje komponent av denna typ kan anslutas till en datakällas fält (en tabell eller frågekolumn). Därför kallas sådana grafiska komponenter för formulärfält.

  - Grafiska komponenter som kan utföra en viss angiven åtgärd, t.ex. en tryckknapp som kan stänga det aktuella formuläret. I andra program kallas komponenttypen ibland formulärstyrning, eftersom den kan utföra fördefinierade åtgärder för att styra databasprogrammets beteende.

  - Övriga grafiska komponenter för att berika formulärets utseende, t.ex. en "linjekomponent" som visuellt kan separera två områden i formuläret.

Omgivande grafisk komponent

- En grafisk komponent som kan innehålla andra komponenter inne i sitt område. Till exempel är ramkomponenter och flikkomponenter omgivande komponenter. Själva formulärets yta är också en omgivande komponent. En kommandoknapp kan inte kallas en omgivande komponent, eftersom det inte är möjligt att infoga en komponent inne i den. I mer komplicerade fall kan omgivande komponenter infogas i en omgivande komponent, alltså är en hierarki möjlig.

#### Formulär eller tabeller

I kapitlet Mata in data i tabeller lärde du dig hur du matar in data direkt i tabeller genom deras databladsvy. Men i många fall är formulär bättre lämpade för datainmatning:

- En tabell kan innehålla för många kolumner för att visa på skärmen. Ett formulär kan visa sådan data med användning av flera rader.

- Ett formulär tillåter att datafälten delas upp visuellt i logiska grupper, och ökar på så sätt läsbarheten. Etiketter med ytterligare information kan infogas för att ge användare fler tips om hur formuläret ska användas, eller vad ett givet datafält betyder.

- Kommandoknappar kan användas i formulär för ofta använda kommandon, så att användare kan använda formulär på liknande sätt som fristående program de känner till.

I datavyn är det lika enkelt att visa flerradiga textdatafält eller bilder som i formulär.

#### Arbeta med formulärkonstruktion

Som vid konstruktion av en tabell eller en förfrågan har du möjlighet att använda datavyn och konstruktionsvyn. Formulärkonstruktion utförs i konstruktionsvyn. Vi kallar ofta fönstret för formulärkonstruktion bara Formulärkonstruktion.

1. För att skapa ett nytt tomt formulär, välj Formulär i verktygsraden. Som alternativ kan du också använda kommandot Skapa objekt: Formulär i kombinationsknappen på projektnavigeringens verktygsrad eller kommandot Skapa objekt: Formulär i den sammanhangsberoende menyn i projektnavigeringen.

2. En ny ram visas, och du kan ändar formuärets storlek genom att flytta kanterna. Formuläret täcks av ett rutnät som förenklar noggrann placering av komponenterna.

Liksom för tabellkonstruktion, tillhandahåller formulärkonstruktion rutan Egenskapseditor. För att spara utrymme på skärmen har rutan tre flikar som hör ihop med formuläret som för närvarande är valt:

Fliken Egenskaper

- Innehåller en lista med egenskaper för den grafiska komponent som för närvarande är markerad.

Fliken Datakälla

- Innehåller egenskaper som specifikt har att göra med datakällan för den grafiska komponent som för närvarande är markerad, eller för själva formuläret.

Fliken Grafiska komponenter

- Innehåller en hierarki av alla grafiska komponenter i formuläret. Listan förenklar uppslagning av komponenter med namn, och navigering mellan dem.

Information om namnet på den grafiska komponent som för närvarande är markerad visas på den första och andra fliken.

Ytterligare verktygsrader är också tillgängliga:

- Verktygsraden Grafiska komponenter används för att infoga nya komponenter i formuläret. Välj Formulärfönstret för att visa det.

#### Använd fliken Grafiska komponenter

Fliken grafiska komponenter i rutan Egenskaper tillhandahåller en lista med formulärets komponenter och deras hierarki. Varje komponent visas inne i hierarkin tillsammans med andra komponenter på samma nivå (med samma överliggande omgivande komponent). Delkomponenter (inne i en omgivande komponent) visas med indragna namn.

Varje komponent visas med sitt namn och sin typ. Typen visas också med en ikon, samma som visas på verktygsraden som används när formuläret konstrueras.

- Att ändra aktuell markering i listan orsakar lämplig markering i formuläret som konstrueras. Det möjliggör enklare uppslagning av komponenter enligt namn och enklare navigation. Det är till exempel möjligt att markera en komponent enligt namn, och därefter byta till fliken Egenskaper för att ändra komponentens egenskaper.

- Genom att hålla nere tangenten &Ctrl; medan ett objekt i komponentlistan markeras, gör det möjligt att markera flera komponenter samtidigt. Att hålla nere &Shift; gör det möjligt att markera en hel lista med komponenter.

Att ge grafiska komponenter rimliga namn kan vara användbart, men krävs inte. Observera att den grafiska komponentens namn är en egenskap som inte är synlig för användaren av ett formulär. Användare ser bara den grafiska komponentens text, som tillhandahålls av egenskapen Text eller liknande.

#### Infoga grafiska komponenter - textfält

Nu skapar vi ett formulär som innehåller information om personer, dvs. ett formulär anslutet till tabellen `Personer`.

Om formuläret som konstrueras ska visa data som hämtas från databasen, måste du placera lämpliga fält på det. Använd knapparna på verktygsraden Grafiska komponenter för att göra det. Varje knapp motsvarar en enskild komponenttyp.

1. Klicka på knappen Textruta på verktygsraden för Grafiska komponenter.

2. Klicka på formulärets yta med vänster musknapp. En ny textruta placeras på punkten där du klickade. Innan du släpper knappen kan du dra musen för att ange önskad storlek på komponenten.

3. Om det behövs, flytta den infogade komponenten genom att dra och släppa den på önskad plats. Du kan ändra storlek på komponenten efteråt genom att dra en av de små rutorna som syns nära dess hörn. Om du markerar en annan komponent eller formulärets yta, så försvinner rutorna.

4. Klicka på verktygsradens knapp Textruta igen, och klicka på formulärets yta för att infoga ytterligare en grafisk komponent. Upprepa åtgärden igen tills du har ytterligare tre textrutor infogade i formuläret. För enkelhetens skull begränsar vi oss till fem datafält.

- Det finns en sammanhangsberoende meny tillgänglig i formulärets konstruktionsläge, som aktiveras genom att klicka med höger musknapp på önskad komponent eller på formulärets yta. Menyn erbjuder kommandon som Klipp ut, Kopiera, Klistra in, Ta bort, med flera, mer komplicerade. Snabbtangenter är också tillgängliga för alternativen. Vissa alternativ är bara tillgängliga för vissa komponenttyper.

- Alternativen Klipp ut, Kopiera och Klistra in gör det möjligt att flytta eller kopiera grafiska komponenter mellan formulär, eller till och med mellan separata databasprojekt.

- Att hålla nere tangenten &Ctrl; medan du klickar på en komponent gör det möjligt att markera flera komponenter.

- Istället för att använda alternativen Kopiera och Klistra in för att duplicera en komponent i samma formulär kan du hålla nere &Ctrl;-tangenten medan du flyttar komponenten. När musknappen släpps, flyttas inte komponenten som dras, utan kopieras till den nya platsen.

#### Tilldela datakällor

Fälten du infogade har ingen datakälla tilldelad ännu, så de kan inte visa information från databasen. För att tilldela en datakälla, använd fliken (Datakälla) i rutan Egenskapseditor.

Det absolut första steget är att ange formulärets datakälla, dvs. en plats där den visade datan hämtas. Som tidigare nämndes kommer du använda tabellen `Personer` som datakälla för det nya formuläret.

1. Klicka på formulärets yta, eftersom du ska ändra dess egenskaper.

2. Byt till fliken (Datakälla) och skriv in tabellnamnet `personer` i kombinationsrutan Formulärets datakälla. Du kan också välja namnet i kombinationsrutans lista.

Du har nu tilldelat formulärets datakälla. Nu måste du ange den grafiska komponentens datakälla.

1. Klicka på den första textfältskomponenten längst upp i formuläret.

2. Skriv in fältnamnet `namn` under egenskapsrutans flik (Datakälla) i kombinationsrutan Komponentens datakälla. Du kan också välja namnet i kombinationsrutans lista.

3. Klicka på nästa textfältkomponent och skriv in `efternamn` som datakälla.

4. Skriv in datakällor för textfälten gatunamn, gatunummer och postort på liknande sätt.

Nu kan du spara formulärets konstruktion (det är inte nödvändigt för att testa formulärets användning). För att spara, klicka på knappen Spara i verktygsraden. När du sparar frågas du efter formulärets namn. Skriv in `Personer` som rubrik, och klicka på knappen Ok. Formulärets namn fylls i automatiskt.

Detta är rätt ögonblick att prova formuläret. Klicka på verktygsradens knapp Data. Om du inte gjorde något misstag när du matade in datakällorna, ska du se formulärets fält ifyllda med data från tabellen `Personer`.

- Om du vill ta bort tilldelning av datakälla för en formulärkomponent kan du använda knappen i rutan Komponentens datakälla.

- Använd knappen (Gå till det markerade formulärets datakälla) för att välja lämplig tabell eller förfrågan under Projektnavigering, så att du snabbt kan öppna en tabell eller förfrågan som är formulärets datakälla.

#### Infoga textetiketter

För att göra det enklare för formulärets användare att identifiera betydelsen hos varje fältkomponent bör de ha tillhörande textetiketter med lämpliga rubriker. För att skapa textetiketter används komponenten Etikett.

Infoga tre textetikettkomponenter i formuläret, och placera dem till vänster om textfälten (eller till höger, om ditt operativsystem använder höger-till-vänster-layout). När en ny etikett infogas kommer en textmarkör visas där du kan skriva in en titel. Skriv in i ordning: `Förnamn`, `Efternamn`, `Gatuadress`, `Gatunummer` och `Postort`. Infoga också en etikett till som visar formulärets namn, dvs. `Personer`. Förstora etikettens storlek, och öka teckensnittsstorleken via Teckensnitt under fliken Egenskaper.

#### Åtgärder

En Åtgärd är en enstaka isolerad aktivitet i programmet, tillgänglig för användaren att utföra. Den kan också utföras automatiskt som en reaktion på en given händelse (t.ex. efter att ett formulär har öppnats).

##### Tilldela åtgärder till formulärknappar

Många åtgärder kan tilldelas till formulärknappar. Den tilldelade åtgärden tförs när knappen klickas.

För att tilldela en åtgärd:

1. Byt till formulärets konstruktionsvy, om du inte redan har gjort det.

2. Välj den befintliga knappkomponenten genom att klicka på den, eller lägg till en ny knappkomponent i formuläret. Om du infogade en ny knapp, skriv in dess titel och tryck på returtangenten.

3. Klicka på knappkomponenten med höger musknapp för att visa den sammanhangsberoende menyn.

4. Välj alternativet Tilldela åtgärd... i den sammanhangsberoende menyn.

5. Dialogfönstret Tilldela åtgärd till knapp visas med en lista över tillgängliga åtgärder. En av åtgärderna är markerad om komponenten redan har en tilldelad åtgärd. Annars har listanÅtgärdskategori värdet Ingen åtgärd vald.

6. Välj alternativet Programåtgärder i listanÅtgärdskategori. Tillgängliga åtgärder för hela programmet visas.

7. Välj en av åtgärderna i listan (t.ex. Ta bort markerat objekt).

Efter att ha bytt till formulärets datavy kan du testa om åtgärden fungerar.

- För att ta bort en tilldelad åtgärd, välj Ingen åtgärd i listan Åtgärdskategori i dialogfönstret Tilldela åtgärd till knapp.

- Åtgärder fungerar bara i formulärets datavy. Alla tänkbara tilldelningar av åtgärder är inte rimliga. Åtgärden Teckensnitt... är till exempel tillgänglig i datavyn, men bara om du har markerat en komponent i konstruktionsvyn. Om du ändrar teckeninställningarna så utförs ändringarna på texten i den markerade komponenten.

#### Layout av grafiska komponenter

I de flesta fall ska formulärets grafiska komponenter vara bekvämt arrangerade och justerade. Att placera, justera och ändra storlek på komponenter för hand är inte lätt och parametrarna justeras inte om användaren ändras storlek på formuläret. I själva verket är situationen ännu värre, eftersom du inte kan anta att ett givet formulär kräver en given storlek, eftersom användare har olika teckenstorlekar och upplösningar på bildskärmen.

Att använda ett specialverktyg som kallas komponentlayout kan hjälpa till att automatiskt skapa en layout för formulärkomponenter. Komponentlayout är åtgärden att gruppera två eller flera komponenter så att de är bra placerade och har lämpliga storlekar.

Att använda en layout i ett formulär förbättrar justering av position. Dessutom används dess utrymme på ett bättre sätt. Textfält är närmare varandra, och mellanrummet är konstant.

##### Storlekspolicy för komponenter i en layout

Istället för att ange en fast storlek på komponenter kan du välja en komponents storlekspolicy i &kexi; bland flera tillgängliga. En storlekspolicy är en flexibel strategi för att styra hur en komponent sträcks ut (eller krymper ihop) beroende på andra grannkomponenter och tillgängligt utrymme i formuläret.

Efter att ha lagt till grafiska komponenter på en rad, ändras storleken så att deras synliga text får plats.

Det finns inställningar av storlekspolicy för varje komponent som infogas i formuläret i egenskapseditorn. Inställningarna presenteras som en grupp egenskaper som kallas Storlekspolicy.

Denna grupp av egenskaper innehåller:

Horisontell storlekspolicy

- definierar den grafiska komponentens horisontella storlek,

Vertikal storlekspolicy

- definierar den grafiska komponentens vertikala storlek,

Horisontell sträckning

- definierar aktivitetsstyrkan hos Horisontell storlekspolicy,

Vertikal sträckning

- definierar aktivitetsstyrkan hos Vertikal storlekspolicy

##### Värden för en storlekspolicy

Följande värden är tillgängliga i kombinationsrutorna för egenskaperna Horisontell storlekspolicy och Vertikal storlekspolicy som visas under Egenskapseditor:

Fast

- värdet betyder att komponentens storlek inte automatiskt kan ändras. den ska behålla den konstanta storlek som definierades när den konstruerades (bredd och höjd).

Minimum

- värdet betyder att komponentens ursprungliga storlek är inställd till det minsta tillåtna värdet, som är tillräckligt och det finns inget behov av att expandera komponenten, men den kan expanderas om det behövs. Denna policytyp kan användas för att tvinga komponenten att expanderas till hela bredden eller höjden, särskilt om du anger ett sträckningsvärde större än 0.

Maximum

- värdet betyder att komponentens ursprungliga storlek är inställd till det största tillåtna värdet, och det kan minskas om det behövs utan att förstöra komponentens användbarhet och läsbarhet om andra komponenter behöver större utrymme.

Föredragen

- värdet betyder att komponentens ursprungliga storlek är den bästa och föredras. Komponenten kan dock krympas eller expanderas och den förblir läsbar.

Expanderande

- värdet betyder att komponentens ursprungliga storlek är rimlig men komponenten kan också krympas. Den kan också expanderas för att uppta så mycket utrymme som möjligt.

Minimum expanderande

- värdet betyder att komponentens ursprungliga storlek är tillåten. Den kan expanderas för att uppta så mycket utrymme som möjligt.

Ignorerad

- värdet betyder att komponentens ursprungliga storlek ignoreras. Komponenten kan expanderas för att uppta så mycket utrymme som möjligt, men andra komponenter tillåter oftast inte det.

Varje komponenttyp har en förvald storlekspolicy. Till exempel har knappkomponenter förvald storlekspolicy inställd till Minimum ( i båda riktningar), medan textfältkomponenter har den vertikala storlekspolicyn inställd till Fast.

Oftast använd storlekspolicy är Föredragen, Minimum och Maximum.

##### Vertikal och horisontell sträckning

Egenskaperna Vertikal sträckning och Horisontell sträckning accepterar heltalsvärden större än eller lika med 0. Egenskaperna tillåter finjustering av en storlekspolicy. Förvalt värde för egenskaperna är 0. Ett större värde på sträckningen betyder att komponenten expanderas mer än komponenter som har ett lägre sträckningsvärde inställt.

### Skriva in data med användning av formulär

Att skriva in och redigera data är oftast uppgiften för användaren av databasprogrammet. Den som konstruerar databasen måste kontrollera formuläret med avseende på giltig datainmatning, och se om formuläret fungerar som avsett.

För att testa formuläret, byt till dess datavy. En enkel databasrad (post) med data kommer visas, och en textmarkör placeras inuti det första datafältet. Du kan flytta mellan fält genom att använda vänster musknapp eller tangenterna Tabulator och &Shift;Tabulator. Medan du arbetar visas en pennikon nära postnavigatorn. Efter att ha skrivit in radens (postens) data kan du trycka på tangenterna &Shift;Retur, eller klicka på knappen Spara post i verktygsraden för att acceptera ändringarna på aktuell rad. Om du klickar på Avbryt poständringar i verktygsraden kastas ändringarna, och datafältens innehåll återställs. Du kan använda postnavigatorns knapp för att gå till en ny rad. Navigatorns alla funktioner finns också tillgängliga på motsvarande sätt som i datatabellvyn.

## Anpassa Kexi

- Docka och koppla losssidorutor

### Docka och koppla loss sidorutor

Sidorutorna Projektnavigering och Egenskapseditorn kan kopplas loss genom att antingen:

- dubbelklicka på 'greppraden' längst upp i rutan, eller

- klicka en gång på ruterknappen längst upp i rutan, bredvid x-et.

När rutornas fönster väl har kopplats loss kan de dockas i huvudfönstret igen på samma sätt som de kopplades loss:

- dubbelklicka på 'greppraden' längst upp i fönstret, eller

- klicka en gång på ruterknappen längst upp i rutan, bredvid x-et.

När du kopplar loss en ruta kommer &kexi; ihåg den senaste dockningspositionen, så, när du dockar rutan igen, kommer den placeras där den senast var dockad.

## Kommandoreferens

- Fliken Kexi

- Fliken Skapa

- Datafliken

- Fliken Extern data

- Verktygsfliken

- Formulärkonstruktionsfliken

- Rapportkonstruktionsfliken

### Fliken Kexi

&kexi;fliken är stället du hanterar &kexi;s projekt.

När du väljer en åtgärd öppnas en skärm intill menyn som erbjuder alternativ för åtgärden du valde.

Alternativen som erbjuds är:

Välkommen

- Här kan du välja att öppna ett projekt du nyligen arbetade med.

Öppna

- Här kan du välja att öppna ett &kexi;-projekt, som antingen kan vara lagrat i en fil eller på en databasserver.

Stäng

- Denna åtgärd stänger det &kexi;projekt du för närvarande har öppet.

Ny

- Här kan du följa guiden för att skapa ett nytt &kexi;projekt.

Importera, exportera eller skicka...

- Här kan du följa guiden för att importera befintlig data till det nu öppna &kexi;projektet.

Avsluta

- Stänger &kexi;.

### Fliken Skapa

Från fliken Skapa kan du skapa objekt som ska läggas till i projektet.

Tabell

- Om du väljer Tabell flyttas du till tabellkonstruktion i konstruktionsvyn för att låta dig lägga till fältdefinitioner i tabellen.

Förfrågan

- Om du väljer Förfrågan flyttas du till förfrågningskonstruktion i konstruktionsvyn för att låta dig konstruera en förfrågan för att få anpassade resultat från ditt projekts tabeller.

Formulär

- Om du väljer Formulär flyttas du till formulärkonstruktion i konstruktionsvyn för att låta dig lägga till grafiska komponenter i formuläret.

Rapport

- Om du väljer Rapport flyttas du till rapportkonstruktion i konstruktionsvyn för att låta dig lägga till grafiska komponenter i din rapport.

Skript

- Om du väljer Skript flyttas du till skripteditorn för att låta dig lägga till egen kod i projektet och/eller objekten.

### Datafliken

Från fliken Data kan du manipulera data i dina tabeller eller grafiska komponenter i dina objekt (formulär, rapporter, etc.)

Klipp ut

- Klipp ut placerar data eller komponent på klippbordet, och avlägsnar den från dess nuvarande plats.

Kopiera

- Kopiera placerar data eller komponent på klippbordet utan att avlägsna den från dess nuvarande plats.

Klistra in

- Klistra in placerar data eller komponent som finns på klippbordet i motsvarande tabell eller objekt.

Klistra in special

- Klistra in special används för att placera godtycklig data från klippbordet i en tabell, på ett sätt som kan förutsägas så att den läggs till enligt tabellens definition.

Sök

- Sök öppnar dialogrutan Sök, så att du kan söka efter specifik text i databasens data.

### Fliken Extern data

Från fliken Extern data kan du importera data från andra källor till &kexi;projektet.

Importera data från fil

- Importera data från fil visar en dialogruta som låter dig importera data från CSV eller vanliga textfiler till en ny tabell i projektet.

Importera tabeller

- Importera tabeller öppnar Guiden för import av tabell som låter dig antingen importera data från filformaten `fods`, `mdb`, `ods`, `tsv` eller från en annan databasserver, till en ny tabell i projektet.

Exportera data till fil

- Exportera data till fil öppnar en dialogruta som låter dig exportera aktuella tabeller till en vanlig text- eller CSV-fil.

Tabellen måste vara öppen för att data ska kunna exporteras från den till en fil.

### Verktygsfliken

Från Verktygsfliken kan du hantera projekt.

Komprimera databas

- Komprimera dataabas letar efter mindre fel i databasen och minskar databasens storlek.

Du bör regelbundet komprimera din databas för att hålla den i gott skick, särskilt efter omfattande ändringar av poster (större tillägg eller borttagningar).

### Fliken för formulärkonstruktion

Från fliken Formulärkonstruktion kan du välja grafiska komponenter att lägga till i formuläret.

Pekare

- Pekare byter till komponentvalsläge.

När du väljer en komponent kommer programmet övergå till läget för att lägga till komponenter. Sedan kan du klicka var som helst i formuläret för att placera komponenten.

Etikett

- Komponenten Etikett visar fördefinierad information i ett formulär. Den används oftast som rubrik bredvid andra datastyrda komponenter.

Textruta

- En Textruta är en enkelradig behållare för data som finns i en tabell.

Texteditor

- En Texteditor är en flerradig behållare för data som finns i en tabell.

Kombinationsruta

- En Kombinationsruta visar en lista där du kan välja bland flera alternativ.

Kryssruta

- En Kryssruta innehåller två eller tre datatillstånd (t.ex. På/Av).

Bildruta

- En Bildruta innehåller en bild, låst till ett fält i en tabell.

Knapp

- En Knapp låter dig definiera åtgärder som ska utföras när du klickar på den.

Ram

- En Ram används som en behållare för andra komponenter.

Gruppruta

- En Gruppruta används för att gruppera andra komponenter och styra deras tillstånd.

Grafisk flikkomponent

- En Flikkomponent används som en behållare för andra komponenter, och kan ha flera sidor som innehåller olika komponenter.

Linje

- En Linje används som en logisk avskiljare mellan olika delar i ett formulär.

Webbläsare

- En Webbläsare är en komponent som möjliggör visning av en webbsida inuti formuläret.

Tilldela åtgärd

- Tilldela åtgärd används för att tilldela en åtgärd som ska utföras när något händer (t.ex. vid klick på en knapp).

### Rapportkonstruktionsfliken

Från fliken Rapportkonstruktion kan du välja vilka komponenter du vill lägga till i en rapport.

Etikett

- Komponenten Etikett visar fördefinierad information om en rapport. Den används oftast som rubrik bredvid andra datastyrda komponenter.

Fält

- Komponenten Fält är en enkelradig behållare för data som finns i en tabell.

Text

- Komponenten Text är en flerradig behållare för data som finns i en tabell.

Bild

- Komponenten Bild innehåller en bild, låst till ett fält i en tabell.

Markering

- Komponenten Markeringkomponent innehåller två eller tre datatillstånd (t.ex. På/Av).

Linje

- En Linje används som en logisk avskiljare mellan olika delar i ett formulär.

Diagram

- Komponenten Diagram används för att lägga till en visuell representation av data i ett diagram.

Webb

- Komponenten Webb används för att tillhandahålla en minimal webbläsarkomponent och visa information från en lokal plats eller webbsida i en rapport.

Streckkod

- Komponenten Streckkod används för att skapa en streckkod som ska skrivas ut på en rapport, från data som finns i ett fält.

## Appendix A. Introduktion till databaser

- Vad är en databas?

- Databas och kalkylblad

- Databaskonstruktion

- Vem behöver en databas?

- Program för att skapa databaser

### Vad är en databas?

Man kan definiera en databas som en samling data om ett ämne. Den är organiserad på ett sätt som gör det möjligt att enkelt bläddra bland informationen, göra ändringar eller lägga till ny data.

Titta på diagrammet för ett av de ovanstående exemplen: en enkel telefonkatalog.

Bilden ovan visar en uppsättning med två kontakter, där var och en visas på ett separat kort. Det verkar som ett sådan kort kan utgöra en enstaka rad i en tabell:

### Kontakttabell

Namn | Tel nr.
Anna | 699 23 43 12
Stefan | 711 19 77 21

Termer och definitioner: Ett ensamt dataobjekt som utgör en del av en större samling kan kallas en rad, eller mer professionellt en post. Samlingen kallas normalt en tabell. Dessutom är det mest naturliga namnet på tabellen det som beskriver datan som den erbjuder/lagrar, vilket är Kontakter. Dessutom består varje rad i tabellen av kolumner, som ofta också kallas fält. Det finns två kolumner (fält) i tabellen `Kontakter`: Namn och Tel nr..

För enkla användningar kan en enda tabell utgöra en databas. Många anser de båda ekvivalenta. Som du kommer att se, behövs det oftast fler än en tabell i riktiga databaser.

För att summera, har du redan en enkel databas med en tabell, `Kontakter`.

Se innehållet på

### Databas och kalkylblad

Det är mycket sannolikt att du redan har använt kalkylprogram som Calligra Sheets, LibreOffice Calc eller &Microsoft; Excel. I så fall undrar du nog: Eftersom både kalkylblad och databaser använder tabeller, varför ska jag då använda de senare?

Vid jämförelse av kalkylblad och databaser kan du stöta på följande saker som du senare kommer att se mer detaljerat:

#### Hur skiljer sig en databas från ett kalkylblad?

Utöka tabellen `Kontakter` genom att lägga till en kolumn (ett fält) `Adress`, så att den gradvis överskrider kapaciteten hos en mobiltelefon. Lägg till fler telefonnummer (kontor, hem) för varje person, och lägg till efternamn till namnen. För att göra det enklare antar vi följande:

- tabellen är begränsad till två personer (självklart kan det finnas hundratals eller tusentals i en riktig databas)

- att det inte finns två personer med samma för- och efternamn

#### Kontakttabell

För- och efternamn | Tel | Adress
Anna Johansson | 699 23 43 12 | Västerport 1, Grönköping
Stefan Andersson | 711 19 77 21 | Wadköping, Klockargränd 5
Anna Johansson | 110 98 98 00 | Västerport 1
Johansson, Anna | 312 43 42 22 | Grönköping, Västerport 1
STEFAN Andersson | 231 83 02 04 | Klockargränd 5, Wadköping

En sådan tabell kan både skapas i ett kalkylblad och i en databas. Det är förstås mycket enkelt att använda ett kalkylblad. Vilka problem stöter man på i detta stadium?

#### Datahänvisningsintegritet

Antag att du använder ett kalkylblad och måste ändra adressen för minst en person. Du har ett litet problem: du måste ofta ändra adressen på flera rader. Anna använder till exempel tre rader. Ett riktigt problem uppstår om du glömmer att ändra en av de tre raderna: adressen som hör ihop med personen blir tvetydig, på så sätt går dataintegriteten förlorad.

Förutom det finns det inget enkelt sätt att ta bort en vald person från tabellen, eftersom du måste komma ihåg att ta bort alla rader som hör ihop med honom eller henne.

#### Överflödig data

Detta hör direkt ihop med föregående problem. I fälten för- och efternamn, samt Adress, skrivs samma data in många gånger. Det är typiskt i kalkylblad, och ett ineffektivt sätt att lagra data eftersom databasen växer i onödan, och kräver på så sätt mer datorresurser (större datastorlek och långsammare åtkomst).

Hur kan du lösa problemen med en databas? Du kan dela information i mindre bitar genom att skapa ytterligare en tabell, `Personer`, med bara två kolumner: `För- och efternamn` samt `Adress`:

#### Persontabell

För- och efternamn | Adress
Anna Johansson | Västerport 1, Grönköping
Stefan Andersson | Klockargränd 5, Wadköping

Varje rad i tabellen `Personer` motsvarar en och samma person. Tabellen `Kontakter` är från och med nu i en relation till tabellen `Personer`.

#### Dataintegritet och giltighet

Observera sättet som data skrivs in i fälten `För- och efternamn` samt `Adress`. De som skriver in data kan göra misstag, eller ibland till och med vara vårdslösa. I vår exempeldata har vi både olika ordning när för- och efternamn skrivs in (Anna Johansson och Johansson, Anna, Stefan och STEFAN) och ännu fler sätt att skriva in samma adress. Du kan säkert tänka dig många andra varianter.

Ovanstående problem visar att vid sökning efter telefonnumret till en person vars adress till exempel är Västerport 1, Grönköping får du inte ett fullständigt resultat. Du får bara en rad istället för tre. Dessutom hittar du heller inte alla telefonnummer vid sökning efter värdet Anna Johansson i fältet För- och efternamn, eftersom Johansson, Anna inte stämmer med Anna Johansson.

Hur kan man lösa problemen genom att använda en databas? Det går att göra genom att ändra konstruktion av tabellen `Personer` genom att:

1. Dela upp data i fältet För- och efternamn i två separata fält: `Förnamn` och `Efternamn`.

2. Dela upp data i fältet `Adress` i tre separata fält: `Gatuadress`, `Gatunummer` och `Postort`.

3. Garantera att datan är riktig: genom att försäkra dig om att inga fält är tomma, t.ex. måste alltid gatunummer skrivas in.

En ändrad tabell ser ut ungefär så här:

#### Persontabell

Namn | Efternamn | Gatuadress | Gatunummer | Postort
Anna | Johansson | Västerport | 1 | Grönköping
Stefan | Andersson | Klockargränd | 5 | Wadköping
Villkor
nödvändigt fält | nödvändigt fält | nödvändigt fält | nödvändigt fält | nödvändigt fält

På grund av att villkoret nödvändigt fält introducerades kan vi vara säkra på att inskriven data är fullständig. I fallet med andra tabeller kan man förstås fortsätta att utesluta vissa fält när data skrivs in.

#### Begränsa datavisning

Kalkylblad visar alla rader och kolumner i tabellen, vilket är besvärligt i fallet med mycket stora datamängder. Du kan förstås filtrera och sortera rader i kalkylblad, men du måste vara extra försiktig när du gör det. Användare av kalkylblad löper risk att glömma att datavyn har filtrerats, vilket kan orsaka misstag. När du beräknar summor, kanske du tror att du har 100 rader med data, medan det i själva verket finns ytterligare 20 dolda rader.

Om du vill arbeta med en mindre delmängd av data, t.ex. för att skicka den till andra för redigering, kan du kopiera och klistra in i ett annat kalkylblad, och efter redigering klistra in ändrad data tillbaka i huvudkalkylbladet. Sådan manuell redigering kan orsaka dataförlust eller felaktiga beräkningar.

För att begränsa datavyn erbjuder databasprogram förfrågningar, formulär, och rapporter.

Ett mycket praktiskt sätt att begränsa är följande utökade version av tabellen `Personer` som tidigare beskrivits:

#### Persontabell

Namn | Efternamn | Gatuadress | Gatunummer | Postort | Inkomst
Anna | Johansson | Västerport | 1 | Grönköping | 23 000
Stefan | Andersson | Klockargränd | 5 | Wadköping | 19 000

Låt oss anta att den nytillagda kolumnen Inkomst innehåller konfidentiell data. Hur kan du till exempel dela personernas kontaktinformation med arbetskollegor utan att avslöja deras inkomst? Det är möjligt om du bara delar en förfrågan och inte hela tabellen. Förfrågan kunde välja alla kolumner utom kolumnen Inkomst. I databasvärlden är en sådan förfrågan ofta känd som en vy.

#### Prestanda och kapacitet

Din dator är troligen rätt snabb, men du märker lätt att det inte hjälper med långsamma, stora kalkylblad. Deras låga effektivitet beror först av allt på avsaknaden av index som snabbar upp datasökningsprocessen (databaser erbjuder dem). Om du dessutom använder saker som systemets klippbord, kan till och med kopiering av data bli besvärlig med tiden.

Kalkylblad som innehåller stora datamängder kan ta enorm tid att öppna. Kalkylblad laddar mängder med data i datorns minne när de öppnas. Det mesta data som laddas är för tillfället troligen oanvändbar eller onödig för dig. I motsats till kalkylblad laddar databaser bara data från datorns lagringsmedia när den behövs.

I de flesta fall behöver du inte bekymra dig om hur databasen lagrar sina data. Det betyder att i motsats till kalkylblad, bryr sig inte databaser om:

- Sekvensen av rader, eftersom du kan ordna rader efter dina behov. Dessutom kan du titta på samma data i många vyer med olika ordning.

- Samma sak gäller för kolumner (fält) i tabellen.

Tillsammans med Begränsa datavisning beskriven i föregående stycke, utgör dessa kvaliteter fördelarna med databaser.

#### Datainmatning

De senaste utgåvorna av program för att skapa kalkylblad gör det möjligt för dig att skapa datainmatningsformulär. Sådana formulär är mest användbara om data inte kan visas bekvämt i en tabellvy, t.ex. om texten upptar för många rader eller om alla kolumner inte får plats på skärmen.

I det här fallet är själva sättet som kalkylblad fungerar problematiskt. Fält för datainmatning placeras fritt inne i kalkylbladet och är oftast inte säkrade mot användarens ingripande (avsiktligt eller av misstag).

#### Rapporter

Databaser möjliggör gruppering, begränsning och summering av data i form av en rapport. Kalkylblad skrivs ofta ut i form av små tabeller utan fullständig automatisk styrning av sidbrytningar och layout av fält.

#### Programmering

Program för att skapa databaser innehåller ofta fullständiga programmeringsspråk. Nyare kalkylblad har också den möjligheten, men dock består beräkningar i att ändra kalkylbladets fält och enkel datakopiering, oberoende av relevans och integritetsregler som nämnts i föregående stycken.

Databehandling i ett kalkylblad görs ofta via ett grafiskt användargränssnitt, som kan göra databehandlingens hastighet långsammare. Databaser har möjlighet att arbeta i bakgrunden, utanför grafiska gränssnitt.

#### Flera användare

Det är svårt att föreställa sig fleranvändning av ett kalkylblad. Även om det är tekniskt möjligt i fallet med de senaste programmen, kräver det mycket disciplin, uppmärksamhet och kunskap av användarna, och det kan inte alltid garanteras.

Ett klassiskt sätt att dela data som sparats i ett kalkylblad med andra är att skicka filen i sin helhet (oftast med e-post) eller tillhandahålla en fil med ett kalkylblad i ett datornätverk. Detta sätt att arbeta är ineffektivt för större grupper: data som kan behövas ett visst ögonblick kan för närvarande vara låst av någon annan.

Å andra sidan har databaser i huvudsak konstruerats med åtkomst av flera användare från början. Till och med i de allra enklaste versionerna är det möjligt att låsa på nivån av en viss tabellrad, vilket gör det möjligt att lätt dela data.

#### Säkerhet

Att säkra ett kalkylblad eller dess olika delar med ett lösenord är bara en symbolisk aktivitet. Efter en fil med kalkylbladet har tillhandahållits i ett datornätverk, kan var och en som kan kopiera filen försöka att knäcka lösenordet. Det är ibland inte så svårt eftersom lösenordet lagras i samma fil som kalkylbladet.

Funktioner för att låsa vid redigering eller kopiering av ett kalkylblad (eller en del av det) är lika enkla att knäcka.

Databaser (utom de som lagras i en fil istället för på en server) behöver inte vara tillgängliga i en enda fil. Du kommer åt dem via ett datornätverk, oftast genom att tillhandahålla ett användarnamn och lösenord. Du får bara åtkomst till de områden (tabeller, formulär och till och med utvalda rader och kolumner) som tilldelats dig genom att ställa in lämpliga åtkomsträttigheter.

Åtkomsträttigheter kan påverka möjlighet att redigera data, eller möjlighet att bara läsa data. Om viss data inte är tillgänglig för dig, skickas det inte ens till din dator, så det finns ingen möjlighet att göra en kopia av data på ett så enkelt sätt som i fallet med filer för kalkylblad.

### Databaskonstruktion

Databaskonstruktion kräver noggrann planering. Observera att omstruktureringen av tabellen `Personer` som föreslogs i avsnittet Dataintegritet och giltighet kan leda till problem när tabellen fylls med data. Att till exempel döpa om ett fält är gjort i en handvändning, men att dela upp fältet `Adress` i separata fält kräver noggrant och monotont arbete.

För att undvika sådana situationer, tänk igenom databasprojektet innan du skapar det i datorn, och innan du och andra börjar använda det. På så sätt, genom att investera en viss tid i början, sparar du troligen tid vid daglig användning.

### Vem behöver en databas?

#### Bli kvar vid kalkylblad om:

- Dina behov är begränsade och data aldrig växer till stora volymer (kan du verkligen förutsäga det nu?)

- Du kan inte inhämta metodiken för databaskonstruktion. Du kan dock fundera på att lägga ut aktiviteten hos någon annan, eller använda enklare verktyg.

- Du använder komplicerade kalkylblad och saknar tid eller pengar att byta till databaser. Tänk igenom eller fråga någon om detta inte är en återvändsgränd. Räkna inte med magiska verktyg som skulle kunna ändra ditt kalkylblad (oberoende av hur bra det är gjort) till en databas.

#### Fundera på att använda databaser om:

- Din samling med data expanderar varje vecka.

- Du skapar ofta nya kalkylblad, kopierar mellan dem och märker att detta arbete blir mer och mer enformigt. I detta fall betalar sig ansträngningen att byta till databaser lätt.

- Du skapar rapporter och utdrag där tabellvyn i ett kalkylblad inte är lämpligt. Då kan du fundera på att byta till användning av en databas med formulärvyer.

### Programvara för att skapa databaser

Hittills har du lärt dig de allmänna särdragen hos databaser utan att ha gått in mycket på detaljer om specifika program för att skapa dem.

De första databaserna skapades tillsammans med stordatorer på 60-talet, t.ex. IBM System/360. Det var inte persondatorernas tid, och därför krävde databaserna mycket specialiserad personal. Även om de gamla datorernas hårdvara var otillförlitlig, de var gränslöst mycket långsammare och hade mindre lagringskapacitet, fanns funktion hos databaser som förblivit den mest attraktiva: dataåtkomst av många användare via nätverk.

Under 70-talet formulerade vetenskapen teorin om relationsdatabaser (begrepp som tabell, post, kolumn (fält) och relation, och många fler). Utifrån den teorin skapades databaserna IBM DB2 och Oracle, som har utvecklats och använts fram till idag. Under sent 70-tal konstruerades de första persondatorerna. Deras användare kunde (gradvis) börja utnyttja många typer av program, inklusive de för databaskonstruktion.

När det gäller stora databaser i företag, har situationen inte förändrats: de kräver fortfarande kraftfulla datorer eller datoranläggningar som kallas kluster. Det är dock utanför den här handbokens område.

Inom området åtkomliga databaser med grafiska användargränssnitt för persondatorer kan du välja bland följande:

- DBase - ett verktyg för databasanvändning för DOS som var populärt under 80-talet. Filer med DBase-format används fortfarande i vissa specifika fall på grund av sin enkelhet.

- FoxPro - ett program som liknar DBase (tidigt 90-tal). Efter att det togs över av Microsoft, introducerades ett grafiskt användargränssnitt och det används därför för att skapa databaser på persondatorer. Produkten säljs fortfarande, även om den verkar vara något föråldrad.

- Microsoft Access: ett program för databaser (konstruktion av data och grafiskt gränssnitt) med många förenklingar, och därför lämpligt för nybörjare, konstruerat under tidigt 80-tal, baserat på en 16-bitars arkitektur. Produkten erbjuds och har bred användning fram till idag, särskilt av små företag, där effektivitet och krav på flera användare inte är särskilt krävande.

- FileMaker - ett populärt program som liknar MS Acess i enkelhet, som fungerar på Windows och MacIntosh plattformar, erbjudet sedan 1985.

- Kexi - ett program för flera plattformar (&UNIX;/&Linux;, Windows, &MacOS; X) utformat år 2003, utvecklat enligt principerna om öppen källkod, en del av det globala KDE-projektet, dvs. en grafisk miljö för &UNIX;- och &Linux;-system. Företaget OpenOffice Poland är en signifikant bidragsgivare till utvecklingen av Kexi.

## Appendix B. Jämförelse av Kexi med andra databasprogram

- Datatyper

### Datatyper

Även om olika databaser brukar tillhandahålla liknande funktioner, använder de ofta olika terminologi. Detta appendix visar för din bekvämlighet hur terminologin som används i &kexi; motsvarar den som används av andra databasprogram. Kapitlet kan därför vara användbart vid överföring av databaser från ett program till ett annat.

Tabellen nedan visar hur datatyper i &kexi; motsvarar datatyper i andra databasprogram.

Vissa av datatyperna som anges här är undertyper till andra typer. Till exempel är typen Lång text en undertyp till typen Text. För att använda en undertyp i &kexi; ska du välja motsvarande bastyp (i det här fallet Text) vid tabellkonstruktion, och därefter välja undertyp med inställningen Undertyp i Egenskapseditorn.

### Jämförelse av datatyper som används i Kexi och andra databasprogram

&kexi; | MS Access | dBase/FoxPro | Paradox
Text (Text) | Text | Character | Alphanumeric
Lång text (Long text) | Memo | Memo | Memo
Datum/tid (Date/Time) | Date, Time | Date | DateTime
Heltal (Integer Number) | Number (Integer) | Numeric | Integer
Stort heltal (Big Integer Number) | Long Integer | Numeric | Long Integer
Flyttal (Floating Point Number) | Single/Double precision number | Float | Number

## Appendix C. Reserverade ord för SQL

Följande listor innehåller ord som används internt av &kexi; vid hantering med datakällor.

När du utformar din databas bör du göra ditt bästa för att undvika att använda dessa reserverade ord, eftersom du annars kan få problem med databasfilen, eller till och med fördärva den.

Om du trots det vill använda reserverade ord, omge dem med dubbla citationstecken; .

### Reserverade ord för Kexi SQL

Den här listan innehåller nyckelord som är reserverade för användning av Kexi SQL:

- AFTER (Efter)

- ALL (Alla)

- ASC (Stigande)

- BEFORE (Före)

- BEGIN (Börja)

- BETWEEN (Mellan)

- BY (Av)

- CASCADE (Kaskad)

- CASE (Ifall)

- CHECK (Kontrollera)

- COLLATE (Sammanställ)

- COMMIT (Arkivera)

- CONSTRAINT (Begränsning)

- CROSS (Kors)

- DATABASE (Databas)

- DEFAULT (Förval)

- DELETE (Ta bort)

- DESC (Beskrivning)

- DISTINCT (Distinkt)

- DROP (Kasta)

- END (Slut)

- ELSE (Annars)

- EXPLAIN (Förklara)

- FOR (För)

- FOREIGN (Främmande)

- FULL

- GROUP (Grupp)

- HAVING (Har)

- IGNORE (Ignorera)

- INDEX

- INNER (Inre)

- INSERT (Infoga)

- INTO (In i)

- KEY (Nyckel)

- LIMIT (Begränsa)

- MATCH (Matcha)

- NATURAL (Naturlig)

- OFFSET (Position)

- ORDER (Ordning)

- OUTER (Yttre)

- PRIMARY (Primär)

- REFERENCES (Referenser)

- REPLACE (Ersätt)

- RESTRICT (Begränsa)

- ROLLBACK (Återställ)

- ROW (Rad)

- SET

- TEMPORARY (Tillfällig)

- THEN (Därefter)

- TRANSACTION (Transaktion)

- UNION

- UNIQUE (Unik)

- UPDATE (Uppdatera)

- USING (Använder)

- VALUES (Värden)

- WHEN (När)

### Reserverade ord för Kexi SQLite-drivrutin

Den här listan innehåller nyckelord som är reserverade för användning av Kexi SQLite-drivrutinen:

- ABORT (Avbryt)

- ATTACH (Bifoga)

- CLUSTER (Gruppering)

- CONFLICT (Konflikt)

- DEFERRED (Fördröjd)

- DEFERRABLE (Kan fördröjas)

- DETACH (Koppla ifrån)

- EACH (Varje)

- EXCEPT (Förutom)

- FAIL (Misslyckas)

- GLOB (Global)

- IMMEDIATE (Omedelbar)

- INITIALLY (Ursprungligen)

- INSTEAD (Istället)

- INTERSECT (Skärningspunkt)

- ISNULL (Är noll)

- NOTNULL (Är inte noll)

- OF (Av)

- PRAGMA

- RAISE (Höj)

- STATEMENT (Sats)

- TEMP (Tillfällig)

- TRIGGER (Utlösare)

- VACUUM (Tomrum)

- VIEW (Visa)

### Reserverade ord för Kexi MySQL-drivrutin

Den här listan innehåller nyckelord som är reserverade för användning av Kexi MySQL-drivrutinen:

- ACTION (Åtgärd)

- ADD (Lägg till)

- AGAINST (Mot)

- AGGREGATE (Samla ihop)

- ALTER (Förändra)

- ANALYZE (Analysera)

- ANY (Någon av)

- ASCII

- AUTO_INCREMENT (Öka automatiskt)

- AVG (Genomsnitt)

- AVG_ROW_LENGTH (Genomsnittlig radlängd)

- BACKUP (Säkerhetskopiera)

- BDB

- BERKELEYDB

- BIGINT (Stort heltal)

- BINARY (Binär)

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEAN (Boolesk)

- BOTH (Båda)

- BTREE

- BYTE

- CACHE

- CHANGE (Ändra)

- CHANGED (Ändrad)

- CHAR (Tecken)

- CHARACTER (Tecken)

- CHARSET (Teckenuppsättning)

- CHECKSUM (Checksumma)

- CIPHER (Krypto)

- CLIENT (Klient)

- CLOSE (Stäng)

- COLLATION (Sammanställning)

- COLUMN (Kolumn)

- COLUMNS (Kolumner)

- COMMENT (Kommentar)

- COMMITTED (Arkiverad)

- COMPRESSED (Komprimerad)

- CONCURRENT (Samtidig)

- CONVERT (Konvertera)

- CUBE (Kub)

- CURRENT_DATE (Aktuellt datum)

- CURRENT_TIME (Aktuell tid)

- CURRENT_TIMESTAMP (Aktuell tidstämpel)

- CURRENT_USER (Aktuell användare)

- DATA

- DATABASES (Databaser)

- DATE (Datum)

- DATETIME (Datum och tid)

- DAY (Dag)

- DAY_HOUR (Dag, timme)

- DAY_MICROSECOND (Dag, mikrosekund)

- DAY_MINUTE (Dag, minut)

- DAY_SECOND (Dag, sekund)

- DEALLOCATE (Avallokera)

- DEC (Decimal)

- DECIMAL (Decimal)

- DELAYED (Fördröjd)

- DELAY_KEY_WRITE (Fördröj nyckelskrivning)

- DESCRIBE (Beskriv)

- DES_KEY_FILE

- DIRECTORY (Katalog)

- DISABLE (Inaktivera)

- DISCARD (Kasta)

- DISTINCTROW (Distinkt rad)

- DIV (Dividera)

- DO (Utför)

- DOUBLE (Dubbel)

- DUAL (Dubbel)

- DUMPFILE (Dumpfil)

- DUPLICATE (Duplicera)

- DYNAMIC (Dynamisk)

- ENABLE (Aktivera)

- ENCLOSED (Innesluten)

- ENGINE

- ENGINES

- ENUM (Uppräkning)

- ERRORS (Fel)

- ESCAPE (Lämna)

- ESCAPED (Lämnad)

- EVENTS (Händelser)

- EXECUTE (Kör)

- EXISTS (Finns)

- EXPANSION

- EXTENDED (Utökad)

- FALSE (Falskt)

- FAST (Snabb)

- FIELDS (Fält)

- FILE (Fil)

- FIRST (Först)

- FIXED (Fixtal)

- FLOAT (Flyttal)

- FLOAT4 (Flyttal4)

- FLOAT8 (Flyttal8)

- FLUSH (Töm)

- FORCE (Tvinga)

- FULLTEXT

- FUNCTION (Funktion)

- GEOMETRY (Geometri)

- GEOMETRYCOLLECTION (Geometrisamling)

- GET_FORMAT (Hämta format)

- GLOBAL

- GRANT (Bevilja)

- GRANTS (Beviljanden)

- HANDLER (Hanterare)

- HASH (Checksumma)

- HELP (Hjälp)

- HIGH_PRIORITY (Hög prioritet)

- HOSTS (Värddatorer)

- HOUR (Timme)

- HOUR_MICROSECOND (Timme, mikrosekund)

- HOUR_MINUTE (Timme, minut)

- HOUR_SECOND (Timme, sekund)

- IDENTIFIED (Identifierad)

- IF (Om)

- IMPORT (Importera)

- INDEXES (Index)

- INFILE (Indatafil)

- INNOBASE

- INNODB

- INSERT_METHOD (Infogningsmetod)

- INT (Heltal)

- INT1 (Heltal 1)

- INT2 (Heltal 2)

- INT3 (Heltal 3)

- INT4 (Heltal 4)

- INT8 (Heltal 8)

- INTERVAL (Intervall)

- IO_THREAD (In-/utdatatråd)

- ISOLATION (Isolering)

- ISSUER (Utfärdare)

- KEYS (Nycklar)

- KILL (Döda)

- LAST (Sist)

- LEADING (Inledande)

- LEAVES (Lämnar)

- LEVEL (Nivå)

- LINES (Linjer)

- LINESTRING (Linjesträng)

- LOAD (Ladda)

- LOCAL (Lokal)

- LOCALTIME (Lokal tid)

- LOCALTIMESTAMP (Lokal tidsstämpel)

- LOCK (Lås)

- LOCKS (Lås)

- LOGS (Loggar)

- LONG (Lång)

- LONGBLOB

- LONGTEXT (Lång text)

- LOW_PRIORITY (Låg prioritet)

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR (Max anslutningar per timme)

- MAX_QUERIES_PER_HOUR (Max förfrågningar per timme)

- MAX_ROWS (Max rader)

- MAX_UPDATES_PER_HOUR (Max uppdateringar per timme)

- MEDIUM (Mellan)

- MEDIUMBLOB

- MEDIUMINT (Mellanstort heltal)

- MEDIUMTEXT (Mellanlång text)

- MICROSECOND (Mikrosekund)

- MIDDLEINT (Mellanheltal)

- MINUTE (Minut)

- MINUTE_MICROSECOND (Minut, mikrosekund)

- MINUTE_SECOND (Minut, sekund)

- MIN_ROWS (Min rader)

- MOD

- MODE (Läge)

- MODIFY (Ändra)

- MONTH (Månad)

- MULTILINESTRING (Sträng över flera rader)

- MULTIPOINT (Flera punkter)

- MULTIPOLYGON (Flera polygoner)

- NAMES (Namn)

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR (N-tecken)

- NEW (Ny)

- NEXT (Nästa)

- NO

- NONE (Ingen)

- NO_WRITE_TO_BINLOG (Skriv inte till binärlogg)

- NUMERIC (Numerisk)

- NVARCHAR (N-variabeltecken)

- OLD_PASSWORD (Gammalt lösenord)

- ONE_SHOT (Engångs)

- OPEN (Öppna)

- OPTIMIZE (Optimera)

- OPTION (Alternativ)

- OPTIONALLY (Alternativt)

- OUTFILE (Utdatafil)

- PACK_KEYS

- PARTIAL (Delvis)

- PASSWORD (Lösenord)

- POINT (Punkt)

- POLYGON

- PRECISION

- PREPARE (Förbered)

- PREV (Föregående)

- PRIVILEGES (Privilegier)

- PROCEDURE (Procedur)

- PROCESS (Process)

- PROCESSLIST (Processlista)

- PURGE (Rensa)

- QUERY (Fråga)

- QUICK (Snabb)

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE (RAID-typ)

- READ (Läs)

- REAL

- REGEXP (Reguljärt uttryck)

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD (Uppdatera)

- RENAME (Byt namn)

- REPAIR (Reparera)

- REPEATABLE (Kan upprepas)

- REPLICATION (Kopiering)

- REQUIRE (Kräv)

- RESET (Återställ)

- RESTORE (Återställ)

- RETURNS (Returnerar)

- REVOKE (Återkalla)

- RLIKE

- ROLLUP

- ROWS (Rader)

- ROW_FORMAT (Radformat)

- RTREE

- SAVEPOINT (Sparningspunkt)

- SECOND (Sekund)

- SECOND_MICROSECOND (Sekund, mikrosekund)

- SEPARATOR (Avskiljare)

- SERIAL (Seriell)

- SERIALIZABLE (Möjlig att serialisera)

- SESSION

- SHARE (Dela ut)

- SHOW (Visa)

- SHUTDOWN (Avstängning)

- SIGNED (Signerad)

- SIMPLE (Enkel)

- SLAVE (Slav)

- SMALLINT (Litet heltal)

- SOME (Några)

- SONAME

- SOUNDS (Ljud)

- SPATIAL (Rumslig)

- SQL_BIG_RESULT (Stort SQL-resultat)

- SQL_BUFFER_RESULT (SQL-bufferresultat)

- SQL_CACHE

- SQL_CALC_FOUND_ROWS (Hittade rader i SQL-uträkning)

- SQL_NO_CACHE (Ingen SQL-cache)

- SQL_SMALL_RESULT (Litet SQL-resultat)

- SQL_THREAD (SQL-tråd)

- SSL

- START

- STARTING (Startar)

- STATUS

- STOP (Stoppa)

- STORAGE (Lagring)

- STRAIGHT_JOIN (Rak sammanfogning)

- STRING (Sträng)

- STRIPED (Randig)

- SUBJECT (Rubrik)

- SUPER

- TABLES (Tabeller)

- TABLESPACE (Tabellutrymme)

- TERMINATED (Avslutad)

- TEXT

- TIME (Tid)

- TIMESTAMP (Tidstämpel)

- TINYBLOB

- TINYINT (Litet heltal)

- TINYTEXT (Liten text)

- TRAILING (Efterföljande)

- TRUE (Sant)

- TRUNCATE (Korta av)

- TYPE (Typ)

- TYPES (Typer)

- UNCOMMITTED

- UNICODE

- UNLOCK (Lås upp)

- UNSIGNED

- UNTIL (Till)

- USAGE (Användning)

- USE (Använd)

- USER (Användare)

- USER_RESOURCES (Användarresurser)

- USE_FRM

- UTC_DATE (Datum i UTC)

- UTC_TIME (Tid i UTC)

- UTC_TIMESTAMP (Tidstämpel i UTC)

- VALUE (Värde)

- VARBINARY (Binärvariabel)

- VARCHAR (Teckenvariabel)

- VARCHARACTER (Teckenvariabel)

- VARIABLES (Variabler)

- VARYING (Varierande)

- WARNINGS (Varningar)

- WITH (Med)

- WORK (Arbete)

- WRITE (Skriv)

- X509

- YEAR (År)

- YEAR_MONTH (År, månad)

- ZEROFILL (Fyll mer nollor)

### Reserverade ord för Kexis PostgreSQL-drivrutin

Den här listan innehåller nyckelord som är reserverade för användning av Kexi pqxx-drivrutinen:

- ABORT (Avbryt)

- ABSOLUTE (Absolut)

- ACCESS (Åtkomst)

- ACTION (Åtgärd)

- ADD (Lägg till)

- AGGREGATE (Samla ihop)

- ALTER (Förändra)

- ANALYSE (Analysera)

- ANALYZE (Analysera)

- ANY (Någon av)

- ARRAY (Fält)

- ASSERTION (Säkerställande)

- ASSIGNMENT (Tilldelning)

- AT

- AUTHORIZATION (Behörighet)

- BACKWARD (Bakåt)

- BIGINT (Stort heltal)

- BINARY (Binär)

- BIT

- BOOLEAN (Boolesk)

- BOTH (Båda)

- CACHE

- CALLED (Anropad)

- CAST

- CHAIN (Kedja)

- CHAR (Tecken)

- CHARACTER (Tecken)

- CHARACTERISTICS (Egenskaper)

- CHECKPOINT (Kontrollställe)

- CLASS (Klass)

- CLOSE (Stäng)

- CLUSTER (Gruppering)

- COALESCE (Sammanstråla)

- COLUMN (Kolumn)

- COMMENT (Kommentar)

- COMMITTED (Arkiverad)

- CONSTRAINTS (Begränsningar)

- CONVERSION (Konvertering)

- CONVERT (Konvertera)

- COPY (Kopiera)

- CREATEDB (Skapa databas)

- CREATEUSER (Skapa användare)

- CURRENT_DATE (Aktuellt datum)

- CURRENT_TIME (Aktuell tid)

- CURRENT_TIMESTAMP (Aktuell tidstämpel)

- CURRENT_USER (Aktuell användare)

- CURSOR (Markör)

- CYCLE (Cykel)

- DAY (Dag)

- DEALLOCATE (Avallokera)

- DEC (Decimal)

- DECIMAL (Decimal)

- DECLARE (Deklarera)

- DEFAULTS (Förval)

- DEFERRABLE (Kan fördröjas)

- DEFERRED (Fördröjd)

- DEFINER

- DELIMITER (Avskiljare)

- DELIMITERS (Avskiljare)

- DO (Utför)

- DOMAIN (Domän)

- DOUBLE (Dubbel)

- EACH (Varje)

- ENCODING (Kodning)

- ENCRYPTED (Krypterad)

- ESCAPE (Lämna)

- EXCEPT (Förutom)

- EXCLUDING (Utesluter)

- EXCLUSIVE (Exklusiv)

- EXECUTE (Kör)

- EXISTS (Finns)

- EXTERNAL (Extern)

- EXTRACT (Packa upp)

- FALSE (Falskt)

- FETCH (Hämta)

- FIRST (Först)

- FLOAT (Flyttal)

- FORCE (Tvinga)

- FORWARD (Framåt)

- FREEZE (Frys)

- FUNCTION (Funktion)

- GLOBAL

- GRANT (Bevilja)

- HANDLER (Hanterare)

- HOLD (Håll)

- HOUR (Timme)

- ILIKE

- IMMEDIATE (Omedelbar)

- IMMUTABLE (Oföränderlig)

- IMPLICIT

- INCLUDING (Inkluderar)

- INCREMENT (Ökning)

- INHERITS (Ärver)

- INITIALLY (Ursprungligen)

- INOUT (In/ut)

- INPUT (Indata)

- INSENSITIVE (Okänslig)

- INSTEAD (Istället)

- INT (Heltal)

- INTERSECT (Skärningspunkt)

- INTERVAL (Intervall)

- INVOKER

- ISNULL (Är noll)

- ISOLATION (Isolering)

- LANCOMPILER

- LANGUAGE (Språk)

- LAST (Sist)

- LEADING (Inledande)

- LEVEL (Nivå)

- LISTEN (Lyssna)

- LOAD (Ladda)

- LOCAL (Lokal)

- LOCALTIME (Lokal tid)

- LOCALTIMESTAMP (Lokal tidsstämpel)

- LOCATION (Plats)

- LOCK (Lås)

- MAXVALUE (Maximalt värde)

- MINUTE (Minut)

- MINVALUE (Minimalt värde)

- MODE (Läge)

- MONTH (Månad)

- MOVE (Flytta)

- NAMES (Namn)

- NATIONAL

- NCHAR (N-tecken)

- NEW (Ny)

- NEXT (Nästa)

- NO

- NOCREATEDB (Skapa inte databas)

- NOCREATEUSER (Skapa inte användare)

- NONE (Ingen)

- NOTHING (Ingenting)

- NOTIFY (Underrätta)

- NOTNULL (Är inte noll)

- NULLIF (Tom om)

- NUMERIC (Numerisk)

- OF (Av)

- OFF (Av)

- OIDS

- OLD (Gammal)

- ONLY (Endast)

- OPERATOR (Operatör)

- OPTION (Alternativ)

- OUT (Ut)

- OVERLAPS (Överlappar)

- OVERLAY (Överlagra)

- OWNER (Ägare)

- PARTIAL (Delvis)

- PASSWORD (Lösenord)

- PATH (Sökväg)

- PENDANT

- PLACING (Placerar)

- POSITION

- PRECISION

- PREPARE (Förbered)

- PRESERVE (Bevara)

- PRIOR (Föregående)

- PRIVILEGES (Privilegier)

- PROCEDURAL

- PROCEDURE (Procedur)

- READ (Läs)

- REAL

- RECHECK (Kontrollera igen)

- REINDEX (Indexera igen)

- RELATIVE (Relativ)

- RENAME (Byt namn)

- RESET (Återställ)

- RESTART (Starta om)

- RETURNS (Returnerar)

- REVOKE (Återkalla)

- ROWS (Rader)

- RULE (Regel)

- SCHEMA (Schema)

- SCROLL (Rulla)

- SECOND (Sekund)

- SECURITY (Säkerhet)

- SEQUENCE (Sekvens)

- SERIALIZABLE (Möjlig att serialisera)

- SESSION

- SESSION_USER (Sessionens användare)

- SETOF

- SHARE (Dela ut)

- SHOW (Visa)

- SIMPLE (Enkel)

- SMALLINT (Litet heltal)

- SOME (Några)

- STABLE (Stabil)

- START

- STATEMENT (Sats)

- STATISTICS (Statistik)

- STDIN (Standardinmatning)

- STDOUT (Standardutmatning)

- STORAGE (Lagring)

- STRICT (Strikt)

- SUBSTRING (Delsträng)

- SYSID (Systemidentitet)

- TEMP (Tillfällig)

- TEMPLATE (Mall)

- TIME (Tid)

- TIMESTAMP (Tidstämpel)

- TOAST

- TRAILING (Efterföljande)

- TREAT (Behandla)

- TRIGGER (Utlösare)

- TRIM (Avkorta)

- TRUE (Sant)

- TRUNCATE (Korta av)

- TRUSTED (Pålitlig)

- TYPE (Typ)

- UNENCRYPTED (Inte krypterad)

- UNKNOWN (Okänd)

- UNLISTEN (Sluta lyssna)

- UNTIL (Till)

- USAGE (Användning)

- USER (Användare)

- VACUUM (Tomrum)

- VALID (Giltig)

- VALIDATOR (Validerare)

- VARCHAR (Teckenvariabel)

- VARYING (Varierande)

- VERBOSE (Detaljerad)

- VERSION

- VIEW (Visa)

- VOLATILE

- WITH (Med)

- WITHOUT (Utan)

- WORK (Arbete)

- WRITE (Skriv)

- YEAR (År)

- ZONE (Zon)

### Reserverade ord för Kexis Oracle-drivrutin

Den här listan innehåller nyckelord som är reserverade för användning av Kexi Oracle-drivrutinen:

- ADMIN (Administration)

- AFTER (Efter)

- ALLOCATE (Allokera)

- ANALYZE (Analysera)

- ARCHIVE (Arkiv)

- ARCHIVELOG (Arkivlogg)

- AUTHORIZATION (Behörighet)

- AVG (Genomsnitt)

- BACKUP (Säkerhetskopiera)

- BECOME (Bli)

- BEFORE (Före)

- BEGIN (Börja)

- BLOCK

- BODY

- CACHE

- CANCEL (Avbryt)

- CASCADE (Kaskad)

- CHANGE (Ändra)

- CHARACTER (Tecken)

- CHECKPOINT (Kontrollställe)

- CLOSE (Stäng)

- COBOL

- COMMIT (Arkivera)

- COMPILE (Kompilera)

- CONSTRAINT (Begränsning)

- CONSTRAINTS (Begränsningar)

- CONTENTS (Innehåll)

- CONTINUE (Fortsätt)

- CONTROLFILE (Kontrollfil)

- COUNT (Räkna)

- CURSOR (Markör)

- CYCLE (Cykel)

- DATABASE (Databas)

- DATAFILE (Datafil)

- DATE (Datum)

- DBA

- DEC (Decimal)

- DECLARE (Deklarera)

- DISABLE (Inaktivera)

- DISMOUNT (Koppla ur)

- DOUBLE (Dubbel)

- DUMP (Dumpa)

- EACH (Varje)

- ENABLE (Aktivera)

- END (Slut)

- ESCAPE (Lämna)

- EVENTS (Händelser)

- EXCEPT (Förutom)

- EXCEPTIONS (Undantag)

- EXEC (Kör)

- EXECUTE (Kör)

- EXPLAIN (Förklara)

- EXTENT

- EXTERNALLY (Externt)

- FETCH (Hämta)

- FLUSH (Töm)

- FORCE (Tvinga)

- FOREIGN (Främmande)

- FORTRAN

- FOUND (Hittad)

- FREELIST

- FREELISTS

- FUNCTION (Funktion)

- GO (Gå)

- GOTO (Gå till)

- GROUPS (Grupper)

- INCLUDING (Inkluderar)

- INDICATOR (Indikator)

- INITRANS

- INSTANCE (Instans)

- INT (Heltal)

- KEY (Nyckel)

- LANGUAGE (Språk)

- LAYER (Lager)

- LINK (Länk)

- LISTS (Listor)

- LOGFILE (Loggfil)

- MANAGE (Hantera)

- MANUAL (Manuell)

- MAX

- MAXDATAFILES (Max antal datafiler)

- MAXINSTANCES (Max antal instanser)

- MAXLOGFILES (Max antal loggfiler)

- MAXLOGHISTORY (Största logghistorik)

- MAXLOGMEMBERS (Högsta medlemsantal i loggen)

- MAXTRANS

- MAXVALUE (Maximalt värde)

- MIN

- MINEXTENTS

- MINVALUE (Minimalt värde)

- MODULE (Modul)

- MOUNT (Montera)

- NEW (Ny)

- NEXT (Nästa)

- NOARCHIVELOG (Arkivera inte loggen)

- NOCACHE (Ingen cache)

- NOCYCLE (Ingen cykel)

- NOMAXVALUE (Inget maxvärde)

- NOMINVALUE (Inget min-värde)

- NONE (Ingen)

- NOORDER (Ingen sortering)

- NORESETLOGS (Återställ inte loggarna)

- NORMAL

- NOSORT (Sortera inte)

- NUMERIC (Numerisk)

- OFF (Av)

- OLD (Gammal)

- ONLY (Endast)

- OPEN (Öppna)

- OPTIMAL

- OWN

- PACKAGE (Paket)

- PARALLEL (Parallell)

- PCTINCREASE (Ökning i procent)

- PCTUSED (Användning i procent)

- PLAN

- PLI

- PRECISION

- PRIMARY (Primär)

- PRIVATE (Privat)

- PROCEDURE (Procedur)

- PROFILE (Profil)

- QUOTA (Kvot)

- READ (Läs)

- REAL

- RECOVER (Återhämta)

- REFERENCES (Referenser)

- REFERENCING (Refererar till)

- RESETLOGS (Återställ loggarna)

- RESTRICTED (Begränsad)

- REUSE (Återanvänd)

- ROLE (Roll)

- ROLES (Roller)

- ROLLBACK (Återställ)

- SAVEPOINT (Sparningspunkt)

- SCHEMA (Schema)

- SCN

- SECTION (Sektion)

- SEGMENT

- SEQUENCE (Sekvens)

- SHARED (Delad)

- SNAPSHOT (Ögonblicksbild)

- SOME (Några)

- SORT (Sortera)

- SQL

- SQLCODE (SQL-kod)

- SQLERROR (SQL-fel)

- SQLSTATE (SQL-tillstånd)

- STATEMENT_ID (Sats-id)

- STATISTICS (Statistik)

- STOP (Stoppa)

- STORAGE (Lagring)

- SUM (Summa)

- SWITCH

- SYSTEM

- TABLES (Tabeller)

- TABLESPACE (Tabellutrymme)

- TEMPORARY (Tillfällig)

- THREAD (Tråd)

- TIME (Tid)

- TRACING (Spårar)

- TRANSACTION (Transaktion)

- TRIGGERS (Utlösare)

- TRUNCATE (Korta av)

- UNDER

- UNLIMITED (Obegränsad)

- UNTIL (Till)

- USE (Använd)

- USING (Använder)

- WHEN (När)

- WORK (Arbete)

- WRITE (Skriv)

### Reserverde ord i Kexis Sybase-drivrutin

Den här listan innehåller nyckelord som är reserverade för användning av Kexi Sybase-drivrutinen:

- ACTION (Åtgärd)

- ADD (Lägg till)

- AGAINST (Mot)

- AGGREGATE (Samla ihop)

- ALTER (Förändra)

- ANALYZE (Analysera)

- ANY (Någon av)

- ASCII

- AUTOINCREMENT (Öka automatiskt)

- AVG (Genomsnitt)

- AVG_ROW_LENGTH (Genomsnittlig radlängd)

- BACKUP (Säkerhetskopiera)

- BDB

- BERKELEYDB

- BIGINT (Stort heltal)

- BINARY (Binär)

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEAN (Boolesk)

- BOTH (Båda)

- BTREE

- BYTE

- CACHE

- CHANGE (Ändra)

- CHANGED (Ändrad)

- CHAR (Tecken)

- CHARACTER (Tecken)

- CHARSET (Teckenuppsättning)

- CHECKSUM (Checksumma)

- CIPHER (Krypto)

- CLIENT (Klient)

- CLOSE (Stäng)

- COLLATION (Sammanställning)

- COLUMN (Kolumn)

- COLUMNS (Kolumner)

- COMMENT (Kommentar)

- COMMITTED (Arkiverad)

- COMPRESSED (Komprimerad)

- CONCURRENT (Samtidig)

- CONVERT (Konvertera)

- CUBE (Kub)

- CURRENT_DATE (Aktuellt datum)

- CURRENT_TIME (Aktuell tid)

- CURRENT_TIMESTAMP (Aktuell tidstämpel)

- CURRENT_USER (Aktuell användare)

- DATA

- DATABASES (Databaser)

- DATE (Datum)

- DATETIME (Datum och tid)

- DAY (Dag)

- DAY_HOUR (Dag, timme)

- DAY_MICROSECOND (Dag, mikrosekund)

- DAY_MINUTE (Dag, minut)

- DAY_SECOND (Dag, sekund)

- DEALLOCATE (Avallokera)

- DEC (Decimal)

- DECIMAL (Decimal)

- DELAYED (Fördröjd)

- DELAY_KEY_WRITE (Fördröj nyckelskrivning)

- DESCRIBE (Beskriv)

- DES_KEY_FILE

- DIRECTORY (Katalog)

- DISABLE (Inaktivera)

- DISCARD (Kasta)

- DISTINCTROW (Distinkt rad)

- DIV (Dividera)

- DO (Utför)

- DOUBLE (Dubbel)

- DUAL (Dubbel)

- DUMPFILE (Dumpfil)

- DUPLICATE (Duplicera)

- DYNAMIC (Dynamisk)

- ENABLE (Aktivera)

- ENCLOSED (Innesluten)

- ENGINE

- ENGINES

- ENUM (Uppräkning)

- ERRORS (Fel)

- ESCAPE (Lämna)

- ESCAPED (Lämnad)

- EVENTS (Händelser)

- EXECUTE (Kör)

- EXISTS (Finns)

- EXPANSION

- EXTENDED (Utökad)

- FALSE (Falskt)

- FAST (Snabb)

- FIELDS (Fält)

- FILE (Fil)

- FIRST (Först)

- FIXED (Fixtal)

- FLOAT (Flyttal)

- FLOAT4 (Flyttal4)

- FLOAT8 (Flyttal8)

- FLUSH (Töm)

- FORCE (Tvinga)

- FULLTEXT

- FUNCTION (Funktion)

- GEOMETRY (Geometri)

- GEOMETRYCOLLECTION (Geometrisamling)

- GET_FORMAT (Hämta format)

- GLOBAL

- GRANT (Bevilja)

- GRANTS (Beviljanden)

- HANDLER (Hanterare)

- HASH (Checksumma)

- HELP (Hjälp)

- HIGH_PRIORITY (Hög prioritet)

- HOSTS (Värddatorer)

- HOUR (Timme)

- HOUR_MICROSECOND (Timme, mikrosekund)

- HOUR_MINUTE (Timme, minut)

- HOUR_SECOND (Timme, sekund)

- IDENTIFIED (Identifierad)

- IF (Om)

- IMPORT (Importera)

- INDEXES (Index)

- INFILE (Indatafil)

- INNOBASE

- INNODB

- INSERT_METHOD (Infogningsmetod)

- INT (Heltal)

- INT1 (Heltal 1)

- INT2 (Heltal 2)

- INT3 (Heltal 3)

- INT4 (Heltal 4)

- INT8 (Heltal 8)

- INTERVAL (Intervall)

- IO_THREAD (In-/utdatatråd)

- ISOLATION (Isolering)

- ISSUER (Utfärdare)

- KEYS (Nycklar)

- KILL (Döda)

- LAST (Sist)

- LEADING (Inledande)

- LEAVES (Lämnar)

- LEVEL (Nivå)

- LINES (Linjer)

- LINESTRING (Linjesträng)

- LOAD (Ladda)

- LOCAL (Lokal)

- LOCALTIME (Lokal tid)

- LOCALTIMESTAMP (Lokal tidsstämpel)

- LOCK (Lås)

- LOCKS (Lås)

- LOGS (Loggar)

- LONG (Lång)

- LONGBLOB

- LONGTEXT (Lång text)

- LOW_PRIORITY (Låg prioritet)

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR (Max anslutningar per timme)

- MAX_QUERIES_PER_HOUR (Max förfrågningar per timme)

- MAX_ROWS (Max rader)

- MAX_UPDATES_PER_HOUR (Max uppdateringar per timme)

- MEDIUM (Mellan)

- MEDIUMBLOB

- MEDIUMINT (Mellanstort heltal)

- MEDIUMTEXT (Mellanlång text)

- MICROSECOND (Mikrosekund)

- MIDDLEINT (Mellanheltal)

- MINUTE (Minut)

- MINUTE_MICROSECOND (Minut, mikrosekund)

- MINUTE_SECOND (Minut, sekund)

- MIN_ROWS (Min rader)

- MOD

- MODE (Läge)

- MODIFY (Ändra)

- MONTH (Månad)

- MULTILINESTRING (Sträng över flera rader)

- MULTIPOINT (Flera punkter)

- MULTIPOLYGON (Flera polygoner)

- NAMES (Namn)

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR (N-tecken)

- NEW (Ny)

- NEXT (Nästa)

- NO

- NONE (Ingen)

- NO_WRITE_TO_BINLOG (Skriv inte till binärlogg)

- NUMERIC (Numerisk)

- NVARCHAR (N-variabeltecken)

- OLD_PASSWORD (Gammalt lösenord)

- ONE_SHOT (Engångs)

- OPEN (Öppna)

- OPTIMIZE (Optimera)

- OPTION (Alternativ)

- OPTIONALLY (Alternativt)

- OUTFILE (Utdatafil)

- PACK_KEYS

- PARTIAL (Delvis)

- PASSWORD (Lösenord)

- POINT (Punkt)

- POLYGON

- PRECISION

- PREPARE (Förbered)

- PREV (Föregående)

- PRIVILEGES (Privilegier)

- PROCEDURE (Procedur)

- PROCESS (Process)

- PROCESSLIST (Processlista)

- PURGE (Rensa)

- QUERY (Fråga)

- QUICK (Snabb)

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE (RAID-typ)

- READ (Läs)

- REAL

- REGEXP (Reguljärt uttryck)

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD (Uppdatera)

- RENAME (Byt namn)

- REPAIR (Reparera)

- REPEATABLE (Kan upprepas)

- REPLICATION (Kopiering)

- REQUIRE (Kräv)

- RESET (Återställ)

- RESTORE (Återställ)

- RETURNS (Returnerar)

- REVOKE (Återkalla)

- RLIKE

- ROLLUP

- ROWS (Rader)

- ROW_FORMAT (Radformat)

- RTREE

- SAVEPOINT (Sparningspunkt)

- SECOND (Sekund)

- SECOND_MICROSECOND (Sekund, mikrosekund)

- SEPARATOR (Avskiljare)

- SERIAL (Seriell)

- SERIALIZABLE (Möjlig att serialisera)

- SESSION

- SHARE (Dela ut)

- SHOW (Visa)

- SHUTDOWN (Avstängning)

- SIGNED (Signerad)

- SIMPLE (Enkel)

- SLAVE (Slav)

- SMALLINT (Litet heltal)

- SOME (Några)

- SONAME

- SOUNDS (Ljud)

- SPATIAL (Rumslig)

- SQL_BIG_RESULT (Stort SQL-resultat)

- SQL_BUFFER_RESULT (SQL-bufferresultat)

- SQL_CACHE

- SQL_CALC_FOUND_ROWS (Hittade rader i SQL-uträkning)

- SQL_NO_CACHE (Ingen SQL-cache)

- SQL_SMALL_RESULT (Litet SQL-resultat)

- SQL_THREAD (SQL-tråd)

- SSL

- START

- STARTING (Startar)

- STATUS

- STOP (Stoppa)

- STORAGE (Lagring)

- STRAIGHT_JOIN (Rak sammanfogning)

- STRING (Sträng)

- STRIPED (Randig)

- SUBJECT (Rubrik)

- SUPER

- TABLES (Tabeller)

- TABLESPACE (Tabellutrymme)

- TERMINATED (Avslutad)

- TEXT

- TIME (Tid)

- TIMESTAMP (Tidstämpel)

- TINYBLOB

- TINYINT (Litet heltal)

- TINYTEXT (Liten text)

- TRAILING (Efterföljande)

- TRUE (Sant)

- TRUNCATE (Korta av)

- TYPE (Typ)

- TYPES (Typer)

- UNCOMMITTED

- UNICODE

- UNLOCK (Lås upp)

- UNSIGNED

- UNTIL (Till)

- USAGE (Användning)

- USE (Använd)

- USER (Användare)

- USER_RESOURCES (Användarresurser)

- USE_FRM

- UTC_DATE (Datum i UTC)

- UTC_TIME (Tid i UTC)

- UTC_TIMESTAMP (Tidstämpel i UTC)

- VALUE (Värde)

- VARBINARY (Binärvariabel)

- VARCHAR (Teckenvariabel)

- VARCHARACTER (Teckenvariabel)

- VARIABLES (Variabler)

- VARYING (Varierande)

- WARNINGS (Varningar)

- WITH (Med)

- WORK (Arbete)

- WRITE (Skriv)

- X509

- YEAR (År)

- YEAR_MONTH (År, månad)

- ZEROFILL (Fyll mer nollor)

### Reserverade ord för Kexis xBase-drivrutin

Den här listan innehåller nyckelord som är reserverade för användning av Kexi xBase-drivrutinen:

- ABORT (Avbryt)

- ATTACH (Bifoga)

- CLUSTER (Gruppering)

- CONFLICT (Konflikt)

- DEFERRED (Fördröjd)

- DEFERRABLE (Kan fördröjas)

- DETACH (Koppla ifrån)

- EACH (Varje)

- EXCEPT (Förutom)

- FAIL (Misslyckas)

- GLOB (Global)

- IMMEDIATE (Omedelbar)

- INITIALLY (Ursprungligen)

- INSTEAD (Istället)

- INTERSECT (Skärningspunkt)

- ISNULL (Är noll)

- NOTNULL (Är inte noll)

- OF (Av)

- PRAGMA

- RAISE (Höj)

- STATEMENT (Sats)

- TEMP (Tillfällig)

- TRIGGER (Utlösare)

- VACUUM (Tomrum)

- VIEW (Visa)

Reserverade ord hålls separat för varje drivrutin så att de också kan användas som referens.

## Appendix D. Filformat som stöds

### Formatet kommaseparerade värden (CSV)

&kexi; klarar av att importera data från och exportera data till en mängd olika kommaseparerade värdeformat (CSV-filer). De flesta kalkylark och databasprogram kan importera och exportera med dessa format, vilket gör dem till lämpliga format för att överföra textdata mellan olika program.

&kexi; stöder också ett antal alternativ som kan ställas in innan importen utförs:

- datatyp för varje kolumn,

- andra fältavgränsare såsom tabulator,

- olika citationstecken för text,

- ett givet antal poster kan hoppas över vid behov,

- upprepade avgränsare kan hoppas över,

- värden från första raden kan användas för att ange kolumnnamn,

- textkodning (UTF-8 är förval),

- datumformat (definierat av operativsystemet är förval),

- borttagning av inledande och avslutande blanktecken från textvärden.

Vid import visar &kexi; en förhandsgranskning av importerad data. De mest lämpliga alternativen detekteras automatiskt av &kexi;, baserat på den tillhandahållna CSV-filen.

### Microsoft Access (MDB) filformat

#### Översikt

Stöd för import av databaser från Microsoft Access (2003 eller tidigare) är inbyggt i &kexi;. Databaser från Access kan bara importeras till en databas i &kexi;. Det kan inte användas för att redigera databasen, och inte heller för att exportera till en databas i Access. Dock bör det också vara möjligt att importera databaser skapade av andra program som använder databasgränssnittet JET. Import av `accdb`-databaser introducerade i MS Access 2007 stöds för närvarande inte.

Att importera en databas:

1. Välj kommandot Importera, exportera eller skicka... i &kexi;s meny.

2. Klicka på knappen Importera databas.

3. Använd importguiden genom att välja önskad .mdb-fil.

#### Möjligheter

Importfunktionen har används för att importera databasen Northwind som är välkänd av MS Access användare. Många andra malldatabaser i Access kan också importeras.

#### Funktioner som stöds

Import av följande fälttyper har provats, och fungerar i allmänhet väl:

- Textfält

- Memofält

- Datumfält

- Numeriska värden

#### Funktioner som inte stöds

För närvarande importeras bara tabeller. Under import hoppar &kexi; över följande objekt:

- Förfrågningar

- Formulär

- Skript

- Rapporter

Följande har inte provats:

- Import av binära objekt

## Tack till och licens

&kexi; Copyright 2002-2012 Kexi-gruppen

Utvecklare av Kexi:

- Jaroslaw Staniek (staniek kde.org)

- OpenOffice Polska, LLC (info openoffice.com.pl)

- Lucijan Busch (lucijan kde.org)

- Cedric Pasteur (cedric.pasteur free.fr)

- Adam Pigg (adam piggz.fsnet.co.uk)

- Martin Ellis (martin.ellis kdemail.net)

- Sebastian Sauer (mail dipe.or)

- Christian Nitschkowski (segfault_ii web.de)

- Peter Simonsson (psn linux.se)

- Joseph Wenninger (jowenn kde.org)

- Seth Kurzenberg (seth cql.com)

- Laurent Montel (montel kde.org)

- Till Busch (till bux.at)

Dokumentation av Martin A. Ellis (martin.ellis kdemail.net), Jaroslaw Staniek (staniek kde.org) med bidrag från Anne-Marie Mahfouf, Raphael Langerhorst, Michal Kubicki och Aron Stansvik.

Det här programmet licensieras enligt villkoren i GNU Lesser General Public License.

Översättning Stefan Asserhäll stefan.asserhall@bredband.net

&underFDL;
&documentation.index;