Newsgroup: it.comp.lang.delphi
Titolo: Quale DB usereste?

Salve gente!
Prime armi con i db...quindi non fucilatemi :) ...ambiente xe 10 (app 
windows ovviamente)
 
Devo fare un piccolo applicativo con un solo db monoutenza...il db avrà 
4 tabelle  (una "master" e 3 tabelle che forniscono dati alla prima 
tabella tramite gli "id").
Quale db scegliereste? la tabella principale arriverà al massimo a 3k 
record...le altre 3 tabelle al massimo a 30/40 record.
Le select saranno veramente semplicissime...molto elementari
A video dovrò scorrere la tabella "master" e tramite dei combobox nelle 
celle sceglierò i valori dalle altre tabelle.
 
In pratica sarà una piccola utiliti per catalogare delle frequenze 
radio...(le tabelle "esterne" conterranno le modulazioni, la tipologia 
di trasmissione e le categorie).
 
 
Consigli su quale db iniziare ad usare e quale componente grid usare?
 
 
 
PS: Avevo iniziato con sqlite ma dopo 8 ore di sbattimento non sono 
riuscito a risolvere il problema che nelle celle mi scrive (widememo)...
Ho letto un pò ovunque ma le soluzioni trovate non risolvonoil mio 
problema...sigh!

 Consigli su quale db iniziare ad usare
 
Ti direi SQLite, che e` perfetto per questo tipo di lavori, ma il tuo 
essere alle prime armi mi fa sconsigliare assolutamente questa soluzione. 
Usa Firebird in modalita` embedded
 
Enrico

 riuscito a risolvere il problema che nelle celle mi scrive (widememo)...
 
Non ho capito...quali celle? 
 
A.
 
 

 record...le altre 3 tabelle al massimo a 30/40 record.
 
Il mio consiglio e` di non usare DB. E` un overkill. Tanto, qualunque DB cacherebbe in memoria un numero cosi` esiguo di record. Carica i dati da file, gestiscili in memoria, e salvali su file in blocco, quando serve.
 

 Consigli su quale db iniziare ad usare e quale componente grid usare?
 
di db se ne è parlato a lungo in questo ng, anche se non hai movimentazioni eccessive di record un qualsiasi db va benissimo, a questo livello credo che uno vale l'altro. Per la grid basta che usi quella di delphi nell'apposita palette dei dati.
 
Ciao da Enrico.

 Ciao da Enrico.
Per usi cosi' banali puoi io uso Access mediante le ADO, Giorgio

 
Ok, grazie
mi sono buttato su access :)
 


 
Ma per carita'
Fatti un piacere e usa un db server che faccia quello di mestiere
Impari una volta e poi lo usi per sempre, senza perdere i tuoi dati, sia 
il db da 300 Kbyte come quello da 3 TeraByte
Usare file mdb o accdb ti obbliga da subito a cambiare se desideri fare 
le operazioni piu' semplici come le copie del db durante il lavoro, 
oppure la multiutenza anche semplice
Io ti consiglio Firebird, o Postgresql
RobertoA
 
 

 mi sono buttato su access :)
 
Hai fatto bene (anche se resto dell'idea che un DB non ti serva). Non ascoltare chi ti consiglia Firebird o PostgreSQL per usi cosi` banali. Non sanno quel che dicono.
 

 Fatti un piacere e usa un db server che faccia quello di mestiere
 
Imparare ad usare un DB server richiede molto piu` sforzo di qualunque db file-based (Access va benissimo per il caso in questione, ma anche una semplice gestione in memoria sarebbe sufficiente). E` decisamente un overkill.

Tutto il rispetto per chi mi ha dato il consiglio del db server...ma in 
questo caso che non sforerò MAI quel numero di record un db server mi 
sembra veramente eccessivo...
Volevo addirittura usare sqlite...ma ho avuto dei problemi...è 
un'utility del cavolo quella che dvi far io...(un piccolo catalogo di 
frequenze radio)


Per l'utlizzo che ne deve fare lui, non c'e' proprio niente da imparare
C'e' solo da sapere cosa usare:
- Firebird + Flamerobin
Se poi vorra' approfondire e sfruttare le peculiarita' del prodotto 
usato potra' anche farlo
Con la differenza, rispetto ad un file mdb, che avra' usato un sistema 
infinitamente piu' affidabile, robusto, scalabile, a costo zero
Ti ricordo che per metter mano ad un mdb devi avere quanto meno Access 
che nessuno ti regala
Quindi, seguendo il tuo consiglio, userebbe un sistema meno robusto e 
pagandolo pure
Gran bel consiglio
 


Se ha adottato un mdb, ha fatto male, e lo dico con cognizione di causa 
perche' e' la stessa strada che ho percorso io anni fa, sprecando tempo, 
perdendo credibilita' verso i clienti, qualche volta rimettendoci pure 
soldini
Gli ho consigliato di evitare un mio errore di tanto tempo fa, su questo 
ho basato la mia risposta, sull'esperienza diretta
A questo punto mi sembra evidente che, in questo caso, le spari 
ad-minchiam, incaponendoti su opinioni che sono facilmente contestabili
 

Ha fatto benissimo, invece ad usare Access, perché Access e' un file-based pefetto per questi utilizzi. Io non mi incaponisco su niente, non ho mai parlato "ad minchiam" in vita mia e non comincerò a farlo con te.

I db server sono fatti per altri utilizzi, non per quello richiesto dall'OP, e "imparare cosa usare" implica una curva di apprendimento. Sì, il mio è un ottimo consiglio. È, a differenza del tuo, un consiglio sensato e calibrato su ciò che gli serve fare. Tu stai invece consigliando il proverbiale cannone per sparare alle mosche. Access va benissimo per applicazioni monoutente con pochissimi record come i suoi. Dai, su, che questo lo sai anche tu.

Hai fatto benissimo ad usare Access. Firebird o qualunque db server sono un overkill nel tuo caso.

Tra l'altro io Delphi l'ho usato per un ventennio buono, conosco tutto ciò che gli circola attorno, ho usato praticamente qualunque db al quale sia collegabile, e quindi la cognizione di causa ce l'ho benissimo anch'io. So bene di cosa parlo. Access è quasi sempre "dormiente" in molte installazioni office, e il fatto che lui lo stia usando significa trarre vantaggio da quanto ha già pagato. Per cortesia, smettetela di fare i talebani di Delphi/Firebird e date consigli più sensati.

 I db server sono fatti per altri utilizzi, non per quello richiesto dall'OP, e "imparare cosa usare" implica una curva di apprendimento. Sì, il mio è un ottimo consiglio. È, a differenza del tuo, un consiglio sensato e calibrato su ciò che gli serve fare. Tu stai invece consigliando il proverbiale cannone per sparare alle mosche. Access va benissimo per applicazioni monoutente con pochissimi record come i suoi. Dai, su, che questo lo sai anche tu.
 
Un db server e' fatto anche per questo di utilizzo
Il tuo non e' il miglior consiglio che potevi dargli
Access va bene per l'uso richiesto, so anche, anzi direi sappiamo, che 
Firebird va meglio con nessuna contropartita negativa
Certo che se gli avessi consigliato Oracle, Db2, Sybase, ecc.., allora 
si potrebbe parlare di 'cannone per sparare alle mosche'
Ma stiamo parlando di altra cosa, stiamo parlando di un programma che a 
scaricarlo (Firebird ver 2.5) pesa meno di 7 Mbyte, la cui installazione 
porta via 30 secondi, l'occupazione di disco sara' 25-30 Mbyte
Il db server, se lanciato, in ram portera' via 2-3 Mbyte
Sia db che tool di gestione, compreso l'eccellente Ibexpress in versione 
lite, sono completamente gratuiti
Non e' cosi' se desideri usare un mdb come archivio
Sai quant'e' l'installer del runtime di access? A tel dig mi, 210 Mbyte 
o 280 Mbyte a seconda delle versioni
Non ho provato il tempo di installazione e l'occupazione in ram una 
volta caricato ma credo sia sicuramente superiore a quella di Firebird
Per avere cosa?
Un sistema, a pagamento, con caratteristiche nettamente inferiori
Che possa anche bastare all'applicazione descritta e' vero
E' altrettanto vero che non e' la migliore delle possibilita' da 
indicare all'amico MB339A  (come l'apparecchio o come il chip?)
E come ciliegina, credo che Delphi e Firebird siano un'accoppiata che si 
sposa perfettamente
Ciao
 
 


Mi scuso se sono stato offensivo, rivedendo quanto scritto ora avrei 
usato termini piu' moderati
Pure Firebird e' un file-based se vuoi, quindi non e' quello sicuramente 
uno dei punti a favore di Access
 
 


Ho letto molti tuoi interventi, so bene di parlare con un profondo 
conoscitore di Delphi, uno dei veri 'maestri' del gruppo
E diciamo pure che sono parecchio invidioso della sapienza che traspare 
in ogni tua risposta/consiglio
E' vero che Office ce l'hanno tutti, e' pure vero che le versioni 
Professional (quello con l'Access per capirci) ce l'hanno in pochi in 
ufficio, in questo senso l'ipotesi di dover cacciare soldini per 
acquistarlo non e' tanto fuori luogo
Sul talebano lascerei perdere, non ti onora, perche' ti ho portato dei 
motivi reali per i quali, nel suo caso, sarebbe meglio usare questo, se 
continui a dirmi che e meglio quello senza motivazione precisa, allora 
va be' i lettori decideranno il talebano chi e'
Ciao
 
 

> indicare all'amico MB339A  (come l'apparecchio o come il chip?)
 
Come l'aereo.... 0_0
 

l'unico reale problema di access è la sintassi SQL non standard che in caso di porting deve essere rivista

Ciao,
   visto che la base dati non e' poi cosi' massiccia, anzi ..., credo che la 
soluzione ti venga gia' fornita con l'ambiente di sviluppo.
Dato che hai Xe 10, se la versione che hai e' abbastanza completa, dovresti 
avere come strumenti le librerie FIREDAC.
Queste librerie ti permettono di accedere a diversi DB, tra cui firebird.
 
Quale sia il Db che andrai a scegliere, ognuno di essi avra' dei punti a 
favore ed altri a contro, sta a te e alle tue necessita' scegliere quello 
piu' idoneo.
 
Se invece non hai le firedac e, per ragioni puramente economiche, vuoi stare 
sul free allora ci sono le ZeosLib (progetto open) che ti permette di 
interfacciarti, oltre che con firebird, anche ad altri DB.
 
Recentemente per un cambio gestionale ho dovuto interfacciare il mio 
programma ad un DB firbird, con Unidac o Zeoslib (grazie a questo ng e alle 
risposte di tutti) non ho avuto problemi (pero' la mia necessita' e' in sola 
lettura).
 
Un saluto
 
Daniele
 
 

Volevo addirittura usare sqlite...ma ho avuto dei problemi...è
un'utility del cavolo quella che dvi far io...(un piccolo catalogo di
frequenze radio)
---
Ma perchè Sqlite non va bene ? Non metterebbe pace tra tutti ? Io userei 
sqlite ! 
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

 che nessuno ti regala
 
Posto che sono d'accordo con te, per mettere mano ad un mdb (non saprei 
dire su accdb) basta Windows ed un client ODBC (l'unica cosa a cui non 
accedi sono i report e i form, il resto viene visto come se fosse un 
normale database)
 
Enrico

 sembra veramente eccessivo...
 
Ognuno ragiona come vuole, personalmente, ripeto, avrei usato Firebird in 
modalita` embedded (ovvero in monoutenza e senza parte server, come 
praticamente stai usando Access)
 
Enrico

 sqlite !
 
Perchè mi sono sbattuto per 3 ore o più su un problema (diciamo 
"noto")... il tdbgrid non digerisce bene sqlite...(problema di 
visualizzazione dati...se vuoi cerca "widememo sqlite tdbgrid" su google...)
 
 
 

Grazie tante per le info

 visualizzazione dati...se vuoi cerca "widememo sqlite tdbgrid" su google...)
 
Quel problema riguarda anche altri database: è più legato a una "limitazione" del controllo TDBGrid riguardo i campi che contengono testo lungo, tra l'altro facilmente aggirabile con un evento, che a un problema del database nello specifico.
 
Ciao,
  Marco.
 
-- 
MARCO BREVEGLIERI (Software and Web Developer)
 #Home: 
http://www.marco.breveglieri.name
 
 #Blog: 
http://www.compilaquindiva.com
 
 #DelphiPodcast: 
http://www.delphipodcast.com
 

Non c'e' bisogno di nessun DB,basta usare un file di testo
(che puoi anche criptare e decriptare)
e caricarlo nelle varie StringGrid di Delphi,anche in presenza di migliaia 
di record non c'e' problema.
Ovviamente devi saper usare bene delphi nelle sue potenzialita',non c'e' 
nemmeno bisogno del linguaggio SQL per le ricerche o filtri,anche perche' 
non funziona su file di testo,basta salvare e poi caricare i dati nelle 
relative StringGrid e filtrare in maniera opportuna.
Ci vuole poi per le stampe un tool per report,io uso
QuickReport Standard conglobato in Delphi7.
 
Ripeto,occorre conoscere bene Delphi.
Io uso Delphi7 da decenni e posso fare praticamente tutto.
Luigi Paolo
 
 

 
Ho fatto confusione con le parole..ho incolpato i lDB :P