Newsgroup: it.comp.programmare.win32
Titolo: Database

Ciao,
vorrei introdurre nella mia applicazione(che scrivo con MS VC++6) il
supporto per i database.
Vi spiego subito la mia necessità,in modo da essere il più chiaro
possibile:nell'applicazione,acquisisco dati da vari sensori ad intervalli
regolari di tempo (circa ogni ora),per poi archiviarli e consultarli in
seguito anche graficandoli.
(Sottolineo che non ho una grande esperienza nell'ambito della
programmazione,per cui se ritenete che stia facendo errori nell'affrontare
il problema,ogni consiglio è ben accetto :) )
Ho scelto di affidarmi a un database,perchè temo che,ad esempio usando un
file di testo per archiviare i dati,avrei un archivio sterminato e di
difficile gestione nel giro di pochi mesi.
Mi sono letto un pò di roba su ODBC,DAO,OLE DB,ADO,senza mai trovare però
informazioni su una cosa per me fondamentale:come si possono creare tabelle
in tempo di esecuzione?Io voglio ovviamente aggiungere record al
database,ma,dato che vorrei avere una tabella per ogni sensore,e il numero
di sensori può variare nel tempo,voglio aggiungere/rimuovere tabelle mentre
il programma gira.
Inoltre (e qui concludo :) ),sono un pò confuso riguardo alla scelta della
tecnologia di database da usare.A me servono solo funzioni basilari di
selezione dei record in base al tempo di archiviazione,oltre alla
possibilità suddetta di creazione di tabelle al runtime.Posso affidarmi al
vecchio ODBC oppure mi consigliate altro?
Spero che qualcuno sia arrivato fin qui,mi rendo conto che il post è un pò
lungo,quindi vi ringrazio anticipatamente!

il programma gira.
Non è corretto e non è efficiente.  Innanzitutto focalizza
l'attenzione su quale DB vuoi utilizzare.  A mio parere, va bene
qualunque scelta tra PostgreSQL (da me preferito, anche perché
gratuito), MySQL (gratuito per utilizzi non commerciali) e Firebird
(utilizzo di nicchia, ma gratuito anch'esso).  
Bada che sono tutti e tre sistemi client/server quindi avrai un server
installato che farà da motore di accesso e gestione dati e un client
(tipicamente distribuito sotto forma di dll) che comunicherà con il
server, indirizzando ad esso ogni richiesta di manipolazione dati
(select/insert/update/delete, ecc...).  E' una trattazione veramente
spicciola, questa, ma spero serva a darti un'idea.
In quanto all'approccio su come gestire le tue informazioni, temo che
una tabella per sensore non sia una grande idea, sopratutto se pensi
di doverle eliminare e creare.  Il tuo modello dei dati deve essere
ben definito a priori e stabilire di creare/cancellare metadati
(indici, tabelle, campi, ecc..) al volo, significa nel 99% dei casi
sbagliare l'approccio architetturale. Considera invece di inserire i
tuoi record in un'unica tabella in cui scevrare, a posteriori, i dati
dell'uno e dell'altro.
Che mole di dati prevedi di avere, in quei pochi mesi, in termini di
numero di record ?
Forse per questo tipo di trattazione è più indicato
it.comp.programmare, quindi imposto il follow-up su quel gruppo.


--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 logico orientarsi verso ADO / OLE DB
Hummm... peccato che non esistano altri modi di accedere ai dati, usando
VC++.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it