SQLite gebruiken met Apache OpenOffice

From Apache OpenOffice Wiki
Jump to: navigation, search


Introductie

OpenOffice Base verschaft functies om met andere databases te erbinden dan de standaard HSQL database. Deze handleiding zou u door de stappen moeten leiden om Apache OpenOffice te verbinden met een SQLite databasebestand.

Wat is SQLite?

SQLite is een basis databaseprogramma dat de meeste mogelijkheden van SQL92 implementeert. Anders dan PostgreSQL en MySQL, slaat SQLite een hele database met al zijn tabellen op in één enkel bestand. Andere voordelen zijn: toegang tot de database vereist geen database-server, databasebestanden kunnen vrijelijk worden gedeeld tussen machines met verschillende volgorde van bytes en databases mogen tot 2 terabytes (241 bytes) in grootte zijn. En daarnaast is het heel snel (twee keer zo snel als PostgreSQL en MySQL voor de meeste bewerkingen) en heeft een kleine voetafdruk voor het geheugen.

Beheren van de gegevens kan worden gedaan op de volgende manieren:

  1. Via een Linux-bibliotheek voor C/C++ of Windows DLL.
  2. Via een in-regelig programma (sqlite: beschikbaar onder Linux en Windows) dat het mogelijk maakt de bestanden van de database te maken of te beheren.
  3. Via de SQLite PHP-module of, als u dat heeft, PHP versie 5 intern naar een database van SQLite.
  4. Via ODBC (Linux en Windows) wat een toepassing die deze standaard ondersteunt, toestaat een database van SQLite te bereiken.
  5. Gebruiken van het experimentele stuurprogramma voor SDBC SQLite

Deze gids beperkt zich tot ODBC wat Apache OpenOffice gebruikt om te verbinden met databases en in het bijzonder SQLite.

Waarom SQLite te gebruiken met OpenOffice?

Het gebruiken van SQLite heeft vele voordelen:

  • De database is slechts in één bestand, in tegenstelling tot dBASE dat een bestand per tabel maakt, wat het delen van databases tussen verschillende gebruikers eenvoudig maakt.
  • Java JRE of SDK is niet vereist voor ondersteuning van SQLite.
  • Er is geen server nodig (lokaal of op afstand) voor toegang tot een database.
  • Stuurprogramma's voor ODBC bestaan voor *NIX en voor Windows, wat gebruikers van beide omgevingen in staat stelt toegang te krijgen tot de gegevens en ze te delen.
  • Een nieuw stuurprogramma voor SDBC (eigen voor Apache OpenOffice) is beschikbaar om mee te experimenteren.
  • Uitgebreide grafische interfaces, zoals die van MS Access, kunnen gemakkelijk worden ontwikkeld met de formulieren, query's, statussen en macro's van Apache OpenOffice. Deze interfaces worden afzonderlijk opgeslagen in .odb-bestanden van OpenOffice en kunnen onafhankelijk van de gegevens worden gedeeld met gebruikers onder UNIX of Windows.

en enkele nadelen:

  • Aanpassen van de structuur van een tabel van SQLite, nadat die is gemaakt, is niet direct mogelijk. Dit betekent dat u niet gemakkelijk velden kunt toevoegen, noch hun eigenschappen kunt aanpassen als de tabel eenmaal is gemaakt. Daarom moet u de structuur van uw tabellen voorbereiden voordat u ze maakt.
  • Apache OpenOffice vereist het gebruiken van het stuurprogramma voor ODBC voor toegang tot een database van SQLite database, wat deze bewerking enigszins gecompliceerd maakt. Het moet eerst worden gedeclareerd in ODBC en dan in OpenOffice. Het eigen stuurprogramma voor SDBC zou deze situatie moeten corrigeren als de database klaar is voor productie.
  • Het initiële databasebestand kan niet worden gemaakt met Apache OpenOffice, maar met andere programma's.

In het kort: de grootste voordelen van het gebruiken van SQLite met OpenOffice zijn de indeling voor de opslag van gegevens en de portabiliteit van de ene omgeving naar de andere. In de lijst met nadelen zijn de twee laatste niet specifiek voor SQLite, maar zijn vereisten voor het gebruiken van ODBC. Echter, ze zijn niet zo ongemakkelijk, omdat ze niet plaatsvinden bij het initiële maken van de database.

Documentation note.png SQLite spreekt iedereen aan die is gefrustreerd met het gebruiken van MDB-bestanden onder Linux, of die moeilijkheden heeft met het installeren van MySQL of een andere server voor RDBMS op zijn werkstation.

Installatie

Documentation linux.png Onder Linux

Unix ODBC-platform

Verbinden met een database van SQLite zal worden gerealiseerd via UnixODBC. ODBC is een open specificatie om toepassingen te voorzien van een consistente interface voor een groot scala aan gegevensbronnen. UnixODBC is een implementatie van deze specificatie voor niet-Windows platforms.

U kunt unixodbc installeren met de pakketbeheerder van uw distributie, of de bronnen downloaden vanaf de website van UnixODBC. Het pakket unixodbc-bin verschaft een toepassing met GUI voor het configureren, die hieronder zal worden gebruikt. Onder Ubuntu of soortgelijke distributies van Linux kunt u de volgende opdracht gebruiken:

sudo apt-get install unixodbc unixodbc-bin

SQLite

Uiteraard zult u SQLite moeten installeren als dat nog niet geïnstalleerd is, omdat dat de database is waarmee u wilt verbinden.

U kunt SQLite installeren met de pakketbeheerder van uw distributie. Het pakket zou sqlite of sqlite3 moeten heten. Onder Ubuntu:

sudo apt-get install sqlite3

Als u dat wilt, kunt u altijd downloaden en de laatste versie van de bron installeren.

SQLite ODBC-stuurprogramma

Om SQLite te laten werken met de standaarden van ODBC zult u ook het SQLite ODBC-stuurprogramma moeten installeren en configureren. Dit stuurprogramma is in Ubuntu beschikbaar in het pakket libsqliteodbc.

Als u dat wilt, kunt u ook de bron downloaden en het zelf compileren. U moet de paketten unixodbc-dev en libsqlite3-dev geïnstalleerd hebben om het met succes te kunnen bouwen.


Het stuurprogramma moet, om de installatie te voltooien, worden geïntegreerd in unixODBC. Start, als root, het programma ODBCConfig in een venster van de terminal:

sudo ODBCConfig
Documentation note.png Als ODBCConfig niet wordt gevonden, controleer dan of u ook het pakket unixODBC-bin hebt geïnstalleerd bij het installeren van de stuurprogramma's voor ODBC.

Nu verschijnt er een GUI om de configuratie te beheren. Doc howto sqlite odbcadmin.png

Klik op de tab Drivers en kies Add… Vul dan de velden als volgt in:

Name: SQLite
Description: SQLite voor ODBC
Driver: /usr/lib/libsqlite3odbc.so
Driver64: /usr/lib64/libsqlite3odbc.so
Setup: /usr/lib/libsqlite3odbc.so
Setup64: /usr/lib64/libsqlite3odbc.so
Documentation note.png Als u nog steeds een versie 2.8.x van libsqlite gebruikt zullen de namen van het stuurprogramma anders zijn. Probeer door de map te bladeren door te klikken op de pijl aan de rechterkant en selecteer er een die geschikt lijkt.

Bevestig dan met het pictogram van het vinkje in de linkerbovenhoek van het venster. Uw nieuwe stuurprogramma zal nu verschijnen in de tab Drivers: Doc howto sqlite odbcadmin-2.png

De installatie van het stuurprogramma onder Linux is nu voltooid en u kunt ODBCConfig sluiten.


Voor hen die ODBCConfig niet hebben of deze configuratie zelf handmatig willen uitvoeren, is het noodzakelijk om het bestand /etc/odbcinst.ini als root te bewerken en de volgende regels toe te voegen:

[SQLite]
Description= ODBC voor SQLite
Driver= /usr/lib/libsqliteODBC.so
Driver64= /usr/lib64/libsqliteODBC.so
Setup= /usr/lib/libsqliteODBC.so
Setup64= /usr/lib64/libsqliteODBC.so
FileUsage= 1
CPTimeout= 
CPReuse= 

Under Windows

Documentation windows.png Onder Windows is de installatie en het configureren veel gemakkelijker. Download eenvoudigweg sqliteODBC.exe, het installatie programma zal automatisch de stuurprogramma's voor ODBC instellen, inclusief de configuraties voor SQLite daarvoor en verschaft u ook het SQLite programma voor de opdrachtregel om databases van SQLite te maken en aan te passen.

Instellen van database SQLite

Maken van een bestand voor database van SQLite

Een initieel databasebestand kan niet direct worden gemaakt in Apache OpenOffice, maar dit wordt bereikt door ofwel het programma “sqlite” op de opdrachtegrel te gebruiken of door een programma met grafisch beheer te gebruiken, een lijst met GUI's is beschikbaar op SQLite.org

Het programma "sqlite" zou al moeten zijn geïnstalleerd als u Linux gebruikt en SQLite hebt geïnstalleerd vanuit rpm. Voor andere systemen van *NIX, moet u SQLite vanuit de bron bouwen die te vinden is op www.sqlite.org/download

Uitvoering en gebruik onder Linux en Windows is identiek.

SQLite gebruiken

Documentation linux.png Open een venster voor de terminal en wijzig naar de map waar u uw database wilt maken. Voer sqlite uit met de bestandsnaam van uw database als argument (bijv. $ sqlite mijndatabase
Documentation windows.png Voer sqlite uit vanuit het menu Start of waar het werd geïnstalleerd. Een standaard dialoogvenster voor het openen van bestanden zal openen en u vragen een databasebestand te selecteren.

Als dit databasebestand nog niet bestaat, zal het automatisch worden gemaakt. Met sqlite kunt u ook tabellen maken en uw database aanpassen met standaard opdrachten voor SQL:

$ sqlite <bestandsnaam van de database>
SQLite version 3.32.3
Enter ".help" for usage hints
sqlite> CREATE TABLE mytable (id INT, text VARCHAR(100));
sqlite> .quit
Documentation note.png U kunt dan controleren of het bestand, inderdaad, werd gemaakt in uw bestandssysteem. De naam van het bestand vereist geen bestandsextensie, maar u kunt het de extensie db geven, zodat het eenvoudig te lokaliseren is als een database.

Gebruiken van het programma sqlite op de opdrachtregel maakt het mogelijk tabellen en indices te maken, om gegevens in te voeren en te posten en query's te maken, vooropgesteld dat u de taal SQL kent - het is echter praktischer voor beginners om deze bewerkingen later met OpenOffice uit te voeren.

SQLite Database Browser gebruiken

Er is ook een grafisch programma voor het maken en bewerken van databases van SQLite, genaamd sqlitebrowser. U kunt dit installeren met de pakketbeheerder van uw distributie.

Na het uitpakken van het bestand, start sqlitebrowser en selecteer Bestand → Nieuwe database of het corresponderende pictogram:

Doc howto sqlite dbbrowser nl.png

Kies de map waarin het bestand moet worden geplaatst en voer dan de naam van het databasebestand in en klik op  Opslaan .

Met dit programma kunt u ook de tabellen maken, de velden en de indexen, toegang verkrijgen tot gegevens en ze visualiseren. Hoewel sqlitebrowswer geschikt is voor deze acties, is er het nadeel dat het niet de volledige lijst van veldtypen weergeeft bij het maken van het veld. In dat geval zou het misschien beter zijn om dat let te doen met Apache OpenOffice.

Instellen van ODBC voor nieuwe database

Na het maken van een nieuwe database voor SQLite hierboven moet u nu deze database in ODBC configureren, zodat u er later in OpenOffice mee kunt verbinden.


Documentation linux.png Onder Linux:

Start ODBCConfig opnieuw als een normale gebruiker en ga naar de tab User DSN. Voeg hier een nieuw item in. Er verschijnt een venster waar u het stuurprogramma voor SQLite moet kiezen die u eerder geconfigureerd hebt. In het volgende venster, zoals hieronder weergegeven, voert u een naam in voor deze verbinding (bijvoorbeeld de naam van uw database) en het volledige pad naar het databasebestand dat u eerder hebt gemaakt.

Doc howto sqlite driverproperties-2.png

Valideer de gegevens op het scherm, klik op het vinkje en u zou uw nieuwe gegevensbron op de tab User DSN moeten zien.


Als u ODBCConfig niet hebt of eenvoudigweg de voorkeur hebt om het handmatig te configureren, start uw favoriet bewerker, open (of maak) het bestand odbc.ini in uw thuismap, en voeg daarin de volgende regels toe:

[My Base]
Description= My test database
Driver= SQLite
Database= /home/<user>/basename.db
Timeout= 1000
StepAPI= No
Documentation note.png Als deze gegevensbron ook door andere gebruikers op het systeem moet worden gebruikt, start ODBCConfig als root en voeg deze bron toe op de tab System DSN of data Source system, of maak een bestand /etc/odbc.ini.

U bent nu klaar om toegang te krijgen tot uw database met Apache OpenOffice!

Documentation windows.png Onder Windows:

U bereikt de configuratie via het dialoogvenster van Apache OpenOffice in de volgende stap, lees gewoon door.

Apache OpenOffice verbinden met een database van SQLite

U moest veel tijd spenderen aan het installeren en configureren van andere dingen, maar we kunnen tenslotte overgaan naar Apache OpenOffice. Nog slechts een paar vensters voor configuratie en u bent er klaar voor.

Start OpenOffice Base en kies in de eerste stap 1. Database selecteren de derde optie, Met een bestaande database verbinden met ODBC.

Met een bestaande database verbinden
 ODBC

In de tweede stap 2. ODBC-verbinding instellen kunt u uw database van SQLite selecteren. Klikken op Bladeren zou u een lijst van alle database moeten geven die u hebt geconfigureerd in ODBC.

Als hier niets wordt weergegeven heeft u een probleem. Controleer dat u feitelijk de database hebt ingesteld in ODBC en dat de stuurprogramma's correct zijn geconfigureerd, zoals beschreven.

Documentation windows.png Onder Windows:

Voordat u uw database hier vermeld ziet moet u die registreren in ODBC zoals hierboven vermeld. Klik op Beheren … aan de rechteronderzijde van het venster.

Doc howto sqlite odbcdriver-windows-1 nl.png


Op de tab Gebruikers-DSN (of de tab Systeem-DSN), klik op Toevoegen… om uw databasebestand in te stellen.

Doc howto sqlite odbcdriver-windows-2 nl.png


Geef uw database een betekenisvolle naam bij Data Source Name - dit zal de naam zijn waaronder uw database zal worden vermeld. Blader voor Database Name naar het SQLite databasebestand dat u eerder gemaakt hebt. Laat de rest op zijn standaard waarden en druk op  OK .

Doc howto sqlite odbcdriver-windows-3.png


De database zal nu worden vermeld in de ODBC Data Source Administrator en na het verlaten van dit venster zou u in staat moeten zijn deze database te selecteren in het dialoogvenster OpenOffice Base.

Werken met de database in Apache OpenOffice

De rest is OpenOffice Base zoals u het kent.

Onthoud alleen enkele dingen: Het maken van nieuwe tabellen met OpenOffice is mogelijk. Die tabellen - samen met alle gegevens die u daar invoert - worden opgeslagen in het externe databasebestand van SQLite waarmee u uw OpenOffice .odb-bestand hebt verbonden.

Velden die zijn gedefinieerd als het type "integer" zijn automatisch verhogend, wat betekent dat ze automatisch de waarde van het veld verhogen als een nieuw record in de tabel wordt ingevoegd.

Documentation caution.png Als u de tabel eenmaal hebt opgeslagen, kunt u die niet meer aanpassen! D.i. u kunt de eigenschappen van de velden niet meer aanpassen, noch toevoegen of verwijderen!

Deze nogal ongemakkelijke beperking is specifiek voor SQLite, dat de opdracht voor SQL ALTER COUNTS niet afhandelt, en niet het stuurprogramma voor ODBC. Deze beperking is door de auteurs ontworpen om het basisprogramma voor de database zo licht mogelijk te maken. Deze beperking zou echter in een toekomstige versie kunnen verdwijnen. U wordt daarom geadviseerd uw tabelstructuur zorgvuldig te controleren, voordat u die opneemt.

Als u een tabel moet aanpassen, is de enige oplossing om een nieuwe tabel te maken en die onder ene andere naam op te slaan. U kunt, door dit te doen, de gegevens overzetten van de originele tabel naar de nieuwe tabel.

Maken en gebruiken van formulieren, query's en rapporten zijn allemaal onafhankelijk van de gegevensbron die u gebruikt. Zij zullen net zo functioneren als met de standaard geïntegreerde HSQL-database en zullen nog steeds worden opgeslagen in uw .odb-bestand. Bekijk voor meer informatie over deze onderwerpen de andere documentatie.

Documentation caution.png Als u subformulieren wilt gebruiken moet u eerst "parameter vervangen" activeren.

Selecteer Bewerken → Database → Geavanceerde instellingen… in het hoofdmenu van uw venster van OpenOffice Base. Selecteer daar, op de tab "Speciale instellingen", de optie "Benoemde parameters vervangen door '?'". U moet misschien OpenOffice opnieuw starten, maar dan zou u zonder problemen subformulieren moeten kunnen gebruiken.

Databases uitwisselen tussen gebruikers

Danzij d ebeschikbaarheid van het stuurprogramma sqliteODBC voor zowel Linux als Windows (net als voor OpenOffice natuurlijk!), kan een database van SQLite gemakkelijk wordne gedeeld door d egebruikers van de twee omgevingen. Het is nodig dat elk een stuurprogramma voor ODBC heeft geïnstalleerd dat zich bewust is van het SQLite-doelbestand en dat die is gedefinieerd als een gegevensbron in OpenOffice. Op dezelfde wijze kunnen OpenOffice Base-bestanden (.odb), die formulieren en macro's bevatten, ook worden gedeeld door d egebruikers van de twee omgevingen.

Documentation caution.png Als formulieren correct moeten functioneren voor elke gebruiker, is het absoluut noodzakelijk dat elke gebruiker exact dezelfde naam toepast voor de gegevensbron bij het maken daarvan.
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages