Gebruikerstip 29 (Juli 2003)


Databasegebruik via de ODBC koppeling

Open DataBase Connectivity is een toepassingslaag in het besturingssysteem die u in staat stelt diverse database formaten in te koppelen in een willekeurige applicatie, zonder dat u de eigenschappen en de taal van die specifieke database hoeft te kennen. Vrijwel ieder besturingssysteem beschikt over een eigen ODBC-laag. In Windows vindt u deze in het configuratiescherm (in 2000 en XP onder beheerders gereedschappen). Ook voor Linux, BSD en MacOsX bestaan er ODBC toepassingen. Vrijwel iedere database beschikt over een "vertaalbestand" dat inkoppelt in de ODBC toepassing en de vertaalslag naar de database-specifieke taal maakt. ODBC heeft een wat trage start gehad, het concept bestaat al vele jaren, maar tot nu toe wordt er weinig gebruik van gemaakt. Voor veel specifieke koppelingen tussen toepassingen en databases zijn eigen koppelingslagen geschreven die geheel om ODBC heen werken. Toch heeft ODBC zo zijn voordelen, u kunt bijvoorbeeld via 1 machine met de ODBC koppeling heel eenvoudig gegevens uitwisselen tussen verschillende databases op verschillende systemen. Bovendien is de uniformiteit van de interface een voordeel, zo hoeft u niet bij iedere nieuwe database opnieuw de commando's te leren. Dit voordeel wordt vooral duidelijk wanneer u of de database, of de toepassing die de database gebruikt wilt wisselen maar niet beiden. ODBC maakt dit, relatief eenvoudig, mogelijk, terwijl dat op vrijwel iedere andere manier onmogelijk zou zijn.

In dit artikel een korte inleiding in hoe u een database koppeling opzet via ODBC. Als voorbeeld wordt er een database, in dit geval PostgreSQL, gekoppeld, via ODBC met Open Office als adressenboek. Dit voorbeeld is natuurlijk ook heel eenvoudig toe te passen op ieder ander database formaat en op iedere andere toepassing die, zoals Open Office, ODBC ondersteunt. Bovendien is het voorbeeld cross-platform, wat inhoudt dat het ook voor ieder besturingssysteem dat een ODBC laag bevat, bruikbaar is.

Het eerste dat u moet doen, is de database configureren. Dit kan, in het geval van grotere databases zoals PostgreSQL, MySQL, SAP, Oracle, via de configuratie programma's en bestanden. U dient hier de netwerk poorten van de database te openen en, om de veiligheid te garanderen, de toegang te beperken tot de netwerkverbindingen en gebruikers die toegang mogen hebben. In het geval van PostgreSQL gaat het hier om de bestanden /var/lib/postgresql/data/pg_hba.conf en /var/lib/postgresql/data/postgresql.conf. Voor kleinere databases, die bestaan uit 1 bestand, zoals Microsoft Access of dbase hoeft u iets dergelijks niet te doen. Zorgt u er bij deze bestanden echter wel voor dat de juiste gebruikers zowel lees- als schrijfrechten hebben. Maak vervolgens een database aan (dit mag zeer minimaal, deze kan nog aangepast worden).
Zoals u waarschijnlijk al vermoedde betekent de manier van configureren van de database zoals met de grotere pakketten (PostgreSQL, MySQL, SAP, Oracle), dat u de ODBC koppeling niet per-se op de machine hoeft te hebben staan waar de database op staat, immers u kunt via de netwerk-interface de database aanroepen.

De ODBC koppeling naar de betreffende database is in Windows waarschijnlijk te realiseren met een installatieprogramma, zo niet dient u het betreffende .dll bestand naar de system directory (in 2000 en XP system32) te copieren. Bij Unix systemen dient u ODBC te installeren (gODBC of de QT variant) en de ODBC koppeling naar de database te installeren. Bij Unix systemen moet u ook de driver nog inkoppelen in ODBC voor PostgreSQL gaat dat als volgt: start ODBC, ga naar het tabblad "drivers", kies "toevoegen" (add), geef een naam, en een omschrijving van het database pakket op. Geef de driver-locatie (voor Debian is deze: /usr/lib/postgresql/lib/psqlodbc.so) en geef de setup-locatie op (in Debian: /usr/lib/odbc/libodbcpsqlS.so).
Vervolgens kunt u kiezen voor een Gebruikers Database koppeling, (UserDSN) of een Systeem Database koppeling (SystemDSN). Wat u hier kiest hangt af van de vraag voor wie u de database beschikbaar wil stellen. Kiest u voor een System DSN, dan kan iedereen die de machine met de ODBC koppeling in kan, bij de database komen, en wanneer u voor een User DSN kiest, kan alleen de betreffende gebruiker bij de database komen vanaf de machine met de ODBC koppeling. De laatste optie is natuurlijk veiliger.
Voeg hier (bij User DSN of System DSN) een database koppeling toe. geef de naam van de Database op bij "DSN", geef de database naam op, geef de servernaam op (dat is localhost of 127.0.0.1 voor de lokale machine, of en andere naam voor een andere machine). Sommige databases vragen om een gebruikersnaam/wachtwoord. Wanneer u dezen heeft ingesteld in het databaseprogramma, geef ze dan hier op. En geef, voor de grotere databases de poort op waar deze op draait, in dit voorbeeld is dat poort 5432. Voor kleine databases dient u aan te geven waar het database bestand staat. Wanneer u wilt kunnen schrijven naar uw database, vergeet dan niet om "read-only" uit te schakelen!!!

Nu de laatste stap, de ODBC koppeling aangeven in OpenOffice. Start Open Office en druk op "F4" (gegevensbronnen/data sources). Klik met de muis in het linker veld, en kies "gegevensbronnen beheren". Voeg een nieuwe gegevensbron op. U kunt deze noemen zoals u wilt. Kies als databasetype ODBC en type achter "sdbc:odbc:" de DSN-naam van uw database. Geef op het tweede blad, indien nodig de gebruikersnaam op en geef aan of een wachtwoord vereist is. De verdere instellingen kunt u wat mee experimenteren, die zijn afhankelijk van uw systeem, en hebben vooral met de weergave te maken. Via het tabblad "tabellen" kunt u aangeven welke tabellen uit de database u wilt zien in OpenOffice en kunt u zonodig nieuwe tabellen aanmaken. en via de tabblanden "query's " en "koppelingen" kunt u zelf query's en koppelingen naar de database tabellen aanmaken. U kunt va het tabblad "tabellen" ook al gemaakte tabellen bewerken. Hiervoor selecteert u de betreffende tabel, en kiest u de functie "tabel bewerken". Op deze manier kunt u velden en voorwaarden voor die velden toevoegen aan uw tabel. Met deze functie kunt u velden aan maken als bijvoorbeeld "voornaam", "achternaan", "adres", "woonplaats", "telefoonnummer", "e-mail adres" enz.
Wanneer u dit alles gedaan heeft, heeft u een complete adressen database die bovendien zeer eenvoudig te gebruiken is in correspondentie. U kunt namelijk de database velden die u nodig heeft aanroepen door, wanneer u met een document bezig bent, eenvoudigweg de betreffende velden uit het gegevensbronnenveld uw document in te slepen.
Voor wat grotere bedrijven zijn hiermee zelfs extra beveiligingsmogelijkheden haalbaar: via ODBC kunt u een database koppelen waarin iedereen leestoegang heeft om gegevens uit te halen, maar waarin slechts 1 of 2 mensen ook schrijftoegang hebben om de gegevens up-to-date te houden. U kunt zelfs een enkele database delen over meerdere vestigingen door eenvoudigweg de betreffende poort open te stellen over internet voor enkel en alleen de juiste personen. Pas hiermee echter wel op!!!! Een fout is zo gemaakt, en dan liggen al uw gegevens op straat.

Een ODBC koppeling is zeer veelzijdig en biedt zeer veel mogelijkheden wanneer correct toegepast. Vooral voor intern gebruik, of zelfs gebruik op 1 enkele machine, is er weinig gevaar, en biedt ODBC zeer veel comfort. Past u echter wel op bij grotere opstellingen, een fout is zo gemaakt. U kunt het beste de instelling en het beheer van grotere opstellingen over laten aan professionals, dan kunt u veel plezier hebben van ODBC.

Heeft u nog vragen of opmerkingen? ons e-mail adres is: info@passys.nl.



home