Newsgroup: it.comp.lang.delphi
Titolo: Soluzione embedded: sì/no/cosa usare?

Devo fare una piccola applicazione (Delphi 7) che monitora e salva la 
durata delle connessioni dialup su un pc (più qualche altra feature 
carina).
Non penso di avere problemi nella realizzazione, ma sono indeciso su 
cosa usare per salvare/interrogare i dati delle connessioni 
(semplicemente data e durata della connessione). Mi piacerebbe usare un 
db embedded in modo da poter usare poi sql per fare interrogazioni 
varie, ma non ho mai sperimentato queste soluzioni... da qualche anno 
sento parlare di Firebird embedded, cos'è cambiato? C'è qualcosa di meglio?
Grazie.
-- 
Jax

 da qualche anno sento parlare di Firebird embedded,
IMHO e' un po troppo per quello che devi fare tu.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto programmatore Delphi?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

 sento parlare di Firebird embedded, cos'è cambiato? C'è qualcosa di meglio?
Di soluzioni ce ne sono tante. Io ho usato "FireBird Embedded" senza 
problemi per applicazioni piccole e grandi, di cui una doveva andare su 
CDROM (bisogna contrassegnare il database con un attributo di "sola 
lettura" usando l'apposito tool amministrativo di InterBase/FireBird).
Strutturando correttamente l'applicazione (eventualmente basata su 
dbExpress e CDS, con driver DBX per InterBase/FireBird), la tua 
applicazione può lavorare sia "stand alone" monoutente con accesso 
diretto sul DB, sia in modalità client/server con un database server 
IB/FB, modificando solo la stringa di configurazione.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

..di solito gli utOnti partono dal "..tanto nn mi serve chissa
cosa..."
e poi via col "senti, ma gia che siamo si potrebbe fare bla
blabla..."...
Io opterei per firebird embedded...
Se all'utOnto vengono delle idee ti trovi gia sotto un database...
A.

 Se all'utOnto vengono delle idee ti trovi gia sotto un database...
Il passaggio da "embedded" (dove esiste) a "client/server" dovrebbe 
essere possibile con ogni database che prevede questa versione 
(FireBird, MySQL, ...), indipendentemente dal database.
L'importante č che il database sia c/s e che l'applicazione sia 
strutturata in modo adeguato, cosě si puň "scalare".


 dataset per l'accesso dati a SQLite).
Dimenticavo, volendo restare nel mondo Delphi, il CDS (ClientDataSet)
in formato binario e' spesso piu' che sufficiente.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista Delphi?


 Grazie.
Anch'io mi sono trovato bene con Firebird embedded
per la connessione uso i componenti Zeos
Ciao

 in formato binario e' spesso piu' che sufficiente.
Secondo me è molto limitativo però: quando vuoi aggiornare i dati su 
disco - e spesso lo si vuol fare ogni volta che un record viene 
modificato - è necessario riscrivere l'intero file. :-|
Meglio combinare il CDS con il dbExpress e un paio di DLL per il proprio 
database "embedded" preferito. :-)


 proprio database "embedded" preferito. :-)
Mai provato Oracle XE? Il database entry-level, small-footprint da
150Mb :)
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto sviluppatore Delphi?


 per la connessione uso i componenti Zeos
Grazie a tutti per i consigli.
Visto quello che mi avete detto, mi butterò su Firebird. Adesso guglo un 
po' e vedo com'è e come funziona...
-- 
Jax

 po' e vedo com'è e come funziona...
Se usi dbExpress, è abbastanza semplice: basta scaricare il file ZIP con 
la libreria del server "embedded" (fbembed.dll) dal sito ufficiale 
(
http://www.firebirdsql.org
), con un paio di DLL di runtime allegate, 
copiarle nella directory dell'eseguibile e impostare il nome della 
libreria nella proprietà "VendorLib" del componente TSQLConnection.
Le restanti impostazioni (es. percorso del database) sono invariate, 
fermo restando che non puoi ovviamente collegarti ad un server FireBird 
vero e proprio con quella DLL, e che il database a cui ti colleghi non 
può essere utilizzato da un server FireBird in quanto viene aperto dalla 
versione "embedded" in modalità esclusiva.


 libreria nella proprietà "VendorLib" del componente TSQLConnection.
So che vi deluderò, ma ieri sera non trovando una documentazione degna 
di questo nome, ho optato per un classico mdb (già ampiamente 
collaudato), e infatti in un paio d'ore ho praticamente finito la parte 
importante del programma - adesso devo andare di ricamo e di test :)
Purtroppo in questo caso ha prevalso la fretta sulla curiosità...
-- 
Jax

 150Mb :)
Alla faccia della "small footprint"... :-)


 di questo nome, ho optato per un classico mdb [...]
Che dire se non... "buuuuuuu!" :-D


 Alla faccia della "small footprint"... :-)
ok. va bene....
ma ihmo,un conftronto oracle/firebird mi sembra un tantino privo di
senso.... :-|
A.

 Che dire se non... "buuuuuuu!" :-D
:D Me lo sono già fatto io ieri sera.
Però lo accetto solo se mi linki un tutorial, un esempio, un cazzabubolo 
qualunque (che non siano i sorgenti di manynotes) pubblicato su internet 
su come si usi fb embedded...
-- 
Jax

 su come si usi fb embedded...
Ma hai letto la mia risposta in questo thread? :-)
Ciao,
   Marco.


 Ma hai letto la mia risposta in questo thread? :-)
Eh sě, ma l'hai scritta alle 2.29 quando io ormai ero nel mondo dei 
sogni e col mio bel mdb funzionante ;P
Invece di andare a folleggiare la sera, stai col tasto F5 incollato su 
icld!! :)
-- 
Jax

 ha scritto nel messaggio 
news:fsg95a$u23$1...@tdi.cu.mi.it...


 Tempo fa usai l'embeded di Firebird e funzionavano a meraviglia
Uhm....... sarebbe bello approfondire (magari in un altro post).
Io ho usato parecchie volte ADO+MDB (niente di trascendentale, però 
neanche troppo semplice tipo una tabella e via), e di problemi non ne ho 
mai avuti.
Comunque per ritornare al mio post originale, mi sono imposto di provare 
una soluzione embedded, e ci sto riuscendo con mysql.
La scelta è caduta su mysql perché lo conosco abbastanza bene...
-- 
Jax

 una soluzione embedded, e ci sto riuscendo con mysql.
Uh, tienimi informato che mi interessa sapere come va... :-)


 Uh, tienimi informato che mi interessa sapere come va... :-)
Bon, oggi mi hanno lasciato un po' in pace e devo dire che visto 
l'esempio incluso negli zeosdbo 6.2.2, è stato più che facile usare la 
connessione embedded. Basta piazzare un componente ZConnection, usare la 
libreria libmysqld50.dll, impostare la proprietà Properties come 
nell'esempio, creare il database nella cartella desiderata (io ho optato 
per %appdata%\miaapplicazione) con l'utility che ti pare (se non sbaglio 
si potrebbe anche creare il database e le tabelle volute a runtime) e 
via, dopodiché ci si può fare sopra quello che si vuole.
Se serve posso postare un po' di codice.
Adesso viene la parte interessante: ogni tot esportare i dati in un db 
mysql esterno (dicasi il mio server intranet esposto su internet), in 
modo da poter fare una gestione via php dei dati raccolti...
-- 
Jax

 DB Access.
cioè, quali?
A.

 modo da poter fare una gestione via php dei dati raccolti...
imho, dipende dal "tot" . dal tipo di export e se lo vuoi
automatico...
A.

 automatico...
Il tot è variabile, ma comunque niente di eccezionale: 1/2 volte alla 
settimana potrebbe andare benissimo (o in caso di consumi anomali); non 
credo sia un problema.
Per il tipo di export, senz'altro automatico... avevo pensato a mysql 
anche perché così potrei collegarmi ad un mio server su internet e 
copiarci dentro i dati con delle semplici SQL. In questo modo eviterei 
di dover fare qualcosa anche lato server (a parte l'interrogazione in php).
-- 
Jax

 sui pc dei nostri rappresentanti...
Penso si riferisse al fatto che per usi commerciali serve un'apposita 
licenza. :-|
Ciao,
   Marco.


 licenza. :-|
Masssммм mica posso fossilizzarmi su ste piccolezze :P
A parte gli scherzi, la licenza di MySql dice:
"If you are developing and distributing open source applications under 
the GPL License, then you are free to use MySQL under the GPL License."
Quindi se io pubblicassi il mio software e i relativi sorgenti con la 
licenza GPL (cosa che non avrei problemi a fare) sarei a posto, no?
Ma cosa dovrei fare esattamente per adottare la licenza GPL? (perт qua 
si va OT...)
-- 
Jax

 licenza. :-|
infatti.... :-))
A.

 sui pc dei nostri rappresentanti...
Parlando con un consulente che è stato alla prima convention di mysql
italia l'anno scorso (la sede italiana è stata aperta in quell'occasione)
ricordo che mi aveva parlato di 1500 euro a licenza per usi commerciali.
Non sarebbe il tuo caso, comunque è bene informarsi perchè non è così
scontato che le licenze di utilizzo *a scopi commerciali* di questi
prodotti siano gratuite.
 
-- 
Morde