🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
6 messages
6 total messages Started by Ward Poelmans Fri, 04 Oct 2002 19:25
databases (SQL)
#7227
Author: Ward Poelmans
Date: Fri, 04 Oct 2002 19:25
12 lines
1640 bytes
Ik zou een programma in C willen schrijven dat grootte hoeveelheiden
gegevens moet opslaan. Dus dacht ik aan het gebruik van een database.
Na wat opzoeken kwam ik uit op mysql. Ik ben er wat beginnen over lezen
en het ziet er goed uit. Maar ik heb nu nog heel wat vragen. Als ik mijn
programma dan schrijf moet dan iedereen mysql gebruiken. Ik las iets van 
OBDC. Zover ik begrepen heb is dit een interface om te communiceren met
een SQL database. Dan is de gebruiker vrij om te kiezen welke SQL
database hij gebruikt. 
Waar kan ik meer vinden over over databases, OBDC en SQL.


Ward.
Re: databases (SQL)
#7230
Author: JVB
Date: Fri, 04 Oct 2002 22:04
20 lines
2380 bytes
Hallo, ten eerste is MySql een zeer geschikte database om grote hoeveelheden
data in op te slaan. Als je daar een programma rond schrijft, is de
gebruiker toch wel verplicht om ook deze database ook  te installeren. Als
je een ODBC toegang maakt naar een database, is dit denk ik een minder goede
manier, omdat ODBC doorgaans trager werkt dan een directe toegang op de
database.
Misschien hier toch wel enkele tips :
Wat zijn voor jouw grote hoeveelheden data ???  een voorbeeld : als het het
zou gaan om enkele honderden duizenden records, dat kan dit ook zonder een
Sql-Server, maar een gewone tabel zoals Paradox, Acces, of Dbase om er maar
drie te noemen, die kunnen deze gegevens ook verwerken, dit hangt eigenlijk
af van twee dingen : de grootte van de data, maar ook het aantal gebruikers
dat gelijktijdig toegang maakt tot de database.

Ik weet niet met welke C - compiler je wil werken, maar als dit zou zijn met
C++ van Borland, wordt volgens mij de keuze nog gemakkelijker want bij deze
compiler is standaard Interbase Sql-Server bijgeleverd, en ook de daarbij
behorende drivers !!, je mag trouwens versie 6.0 van Interbase naar de
gebruiker toe gratis verdelen omdat dit een Open Source is.
Hopelijk wordt het voor u iets duidelijker. Groeten
Re: databases (SQL)
#7245
Author: Philip Paeps
Date: Sat, 05 Oct 2002 19:43
57 lines
3348 bytes
Ward Poelmans <Ward.Poelmans@pandora.be> wrote:
> Ik zou een programma in C willen schrijven dat grootte hoeveelheiden
> gegevens moet opslaan. Dus dacht ik aan het gebruik van een database.

Sounds good.

> Na wat opzoeken kwam ik uit op mysql. Ik ben er wat beginnen over lezen
> en het ziet er goed uit. 

Is inderdaad goed, maar is maar een 'basis-database'.  Zonder stored
procedures, subselects, (uitgebreide) foreign-key constraints of atomic
operations.  Als je die dingen niet nodig hebt, go for it!  Als je ze wel
nodig hebt, raad ik je PostgreSQL aan, die is ook OpenSource en ook zeer goed
en bevat alle bovenstaanden.

> Maar ik heb nu nog heel wat vragen. Als ik mijn programma dan schrijf moet
> dan iedereen mysql gebruiken. 

Nee.  Je levert gewoon de client-library met je programma mee, of stelt die
als dependency.

> Ik las iets van OBDC. 

Slow.  Gewoon client-API gebruiken, best via een wrapper, kan je nog eenvoudig
van DBMS veranderen als dat nodig blijkt.  Je kunt ook clean-up code in de
wrapper gooien.  Altijd praktisch.

> Zover ik begrepen heb is dit een interface om te communiceren met een SQL
> database. 

Het is de trage manier om te comminiceren met om het even welk 'iets' waar een
driver voor bestaat.  Inclusief Access, Exhel en andere rommel.

> Dan is de gebruiker vrij om te kiezen welke SQL database hij gebruikt. 

De gebruiker moet dat niet kiezen.  Da's een beslissing voor de programmeur,
tenzij de programmeur beslist dat het op verschillende databases kan runnen,
in welk geval je gewoon een wrapper rond verschillende APIs schrijft, met
dezelfde functions enz.

> Waar kan ik meer vinden over over databases, OBDC en SQL.

De MySQL manual is *zeer* volledig wat de C-API betreft, idem voor de
PostgreSQL manual.  ODBC vind ik persoonlijk een soep.  Maakt je leven vooral
moeilijk.  Niet alle systemen hebben ODBC aan boord, en meestal is het een
ramp om te installeren.  De API van je gekozen database plus je wrapper is
hoogstens een paar source-files en ic. MySQL en PostgreSQL is die naar zowat
alle platforms geport.

Veel plezier.

 - Philip

-- 
Philip Paeps                                                   philip@paeps.cx

  An unbreakable toy is useful for breaking other toys.
Re: databases (SQL)
#7256
Author: Niels Van Eetvelde
Date: Sun, 06 Oct 2002 16:51
45 lines
3345 bytes
"Ward Poelmans" <Ward.Poelmans@pandora.be> wrote in
news:pan.2002.10.04.19.25.37.638962@pandora.be: 

> Ik zou een programma in C willen schrijven dat grootte hoeveelheiden
> gegevens moet opslaan. Dus dacht ik aan het gebruik van een database.
> Na wat opzoeken kwam ik uit op mysql. Ik ben er wat beginnen over
> lezen en het ziet er goed uit. 

Afhankelijk van wat je kan gaan doen is mysql zeker geen slechte keuze:
open source, snel, goed gedocumenteerd, ... 

> Maar ik heb nu nog heel wat vragen. Als ik mijn
> programma dan schrijf moet dan iedereen mysql gebruiken. Ik las iets
> van OBDC. Zover ik begrepen heb is dit een interface om te
> communiceren met een SQL database. Dan is de gebruiker vrij om te
> kiezen welke SQL database hij gebruikt. 

Als je je programma enkel wilt laten werken op mysql, dan heb je
eigenlijk de keus: je kan gebruik maken van de mysql C interface, of van
een ODBC library. Indien je gebruik maakt van het laatste systeem heb je
bovendien het voordeel dat een gebruiker zonder al te veel problemen je
programma kan "aansluiten" op een ander opslag systeem (bv Oracle DB of
zelfs gewoon excel files bv.) 

In principe kan je ook een eigen 'wrapper' library schrijven, en dus
zelf een soort van globale interface bedenken, en dan met de API van
elke databank die je wilt ondersteunen die interface invullen. Je doet
dus iets vergelijkbaars met ODBC, met het belangrijke nadeel dat je er
veel tijd in stopt (en dus ook geld), het ding moet ook nog eens
allemaal getest worden, als dan iemand een database wil gebruiken die
jij niet ondersteund hebt, dan mag ie daarvoor zelf eerst een driver
schrijven en debuggen ...  En dan heb ik het nog niet eens over het
design van die interface of documentatie gehad. 

En dan op het einde van de rit: het beoogde doel: je hebt (misschien
!!!) een implementatie gemaakt die een paar cycles sneller is dan een
ODBC systeem. Dus denk toch maar eens even na voor je die optie
overweegt, je zondigt tegen een van de voornaamste programmeerregels:
vind het wiel niet opnieuw uit. 

> Waar kan ik meer vinden over over databases, OBDC en SQL.
> 

Google zal je de weg wijzen naar een heleboel interessante informatie,
eventjes intypen en je vindt wel een paar goeie sites. 
Re: databases (SQL)
#7257
Author: Ward Poelmans
Date: Sun, 06 Oct 2002 17:21
10 lines
1402 bytes
A long time ago, in a galaxy far far away, Niels Van Eetvelde wrote:

> En dan op het einde van de rit: het beoogde doel: je hebt (misschien
> !!!) een implementatie gemaakt die een paar cycles sneller is dan een
> ODBC systeem.

snelheid is niet van top belang bij dit programma.
Maar is ODBC dan echt zoveel trager?

Ward.
Re: databases (SQL)
#7258
Author: JVB
Date: Sun, 06 Oct 2002 18:09
30 lines
2567 bytes
Geachte, ik weet dat de meningen kunnnen verschillen onder programmeurs.(
dit is soms wel goed ook ), maar ik ga af op de ervaring die ik heb op
gebied van database-programmatie.

Als dit programma slechts alleen voor thuisgebruik is, maar enkele
honderdduizenden records bevat, en waarschijnlijk alleen single user
gebruikt word, dan zou ik geen Sql-database gebruiken maar bijvoorbeeld een
simpele Paradox tabel.

Denk eventueel na om dit met een Borland product te doen, bijvoorbeeld C++
of Delphi, beide tools hebben een directe toegang naar volgende tabellen (
dus odbc niet nodig ) :  Dbase3, en Dbase4, Paradox, Acces, Foxpro en Visual
Dbase.

Als achteraf blijkt dat je alsnog een Sql-server moet gaan gebruiken, kan je
zonder al te veel moeite de bijgeleverde Sql-Server van Interbase gebruiken,
die bij C++ en Delphi is bijgeleverd, en vervolgens de bestaande data van de
vorige gebruikte tabel importeren naar de Sql - server.

Het is trouwens in Delphi en C++ mogelijk om dezelfde sql-statements te
handhaven, als men  b.v. overschakeld van  Paradox naar Interbase !!, ik
bedoel dus zonder programma aanpassing van database veranderen !!
In Delphi en C++ kan je de tabellen op twee manieren benaderen : met
Sql-statements, maar ook met de pascal / C++ statements, als je weinig
ervaring in sql hebt raad ik je aan dit te doen met de gewone statements
(Pascal (=Delphi) of C++)


Maar ik blijf erbij : waarom met een Sql-server gaan werken als het met een
databae ook gaat ?
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads