PDA

Visualizza la versione completa : [Delphi] Database e componenti ...


hwplanet
27-03-2003, 00:42
Salve, sto smanettando con Delphi e i database e mi trovo dinanzi a tre scelte...

1) Quale Db adottare tra mysql e PostgreSQL ? il primo pare sia più veloce, ma il secondo supporta subquery e soprattutto le stored procedures, che mysql non ha. PostgreSQL però non gira nativamente in Windows, sebbene ci sia il modo di farcelo girare ... Inoltre mi pare di capire che mysql non è utilizzabile liberamente con software commerciale, visto che nel sito mysql.org si legge chiaramente questo:


You need to purchase commercial non-GPL MySQL licenses:

If you distribute MySQL Software with your non open source software,
If you want warranty from MySQL AB for the MySQL software,
If you want to support MySQL development

In pratica se non dai il sorgente del software che realizzi non puoi usare la versione gratuita di mysql ... ditemi se ho interpretato bene :)
PostgreSQL invece nella licenza dice esplicitamente di essere utilizzabile liberamente anche per fini commerciali
Alla luce di tutto ciò ... mysql o PostgreSQL ?

2) Siccome vorrei acquistare la licenza Professional e non le costose Enterprise o tantomeno Architect, volevo sapere se dbExpress è incluso anche nella Professional. Tuttavia, mi pare che non funzioni proprio benissimo ... stavo guardando ZeosLib e mi sembrano piuttosto buone, oltre che OpenSource. In alternativa prodotti commerciali ma a prezzi ragionevoli tipo mysqlDAC / PostgreDAC della microolap ... vuoi cosa mi consigliate ?

3) Infine ... ho trovato delle ottime componenti per creare Report ... e più esattamente FreeReport / FastReport. Unico difetto, sono in inglese. Mi chiedevo se le posso liberamente tradurre oppure la licenza non lo consente.

l.golinelli
27-03-2003, 09:26
Tra MySQL e Postgre non ti so dire...
Cmq i componenti della ZeosLib io li ho messi su in Kylix 3 su Linux e vanno proprio bene anche se hanno dei metodi diversi dai componenti standard di Delphi per l'accesso alla BDE o a Interbase...

:ciauz:

alka
27-03-2003, 10:52
Ciao,
dò anche io la risposta ad alcune delle tue domande.

Il motore di accesso ai dati dbExpress lo trovi a partire dalla versione Professional. Lo sto esaminando proprio in questi giorni per capirne a fondo le funzionalità e le modalità d'uso.

Attualmente, con dbExpress puoi utilizzare principalmente due database: InterBase e MySQL, che sono disponibili per entrambe le piattaforme Windows e Linux. Utilizzando quindi dbExpress e i database citati, puoi creare applicazioni in Delphi che possano essere caricate in ambiente Kylix e ricompilate su Linux. Il PostGre non è immediatamente disponibile, ma se dici che c'è modo di farlo girare su Windows, probabilmente qualcuno avrà anche sviluppato un driver per dbExpress che consenta di accedere ai database in quel formato; prova a cercare su Internet...

Per quanto riguarda la licenza di MySQL, credo che tu l'abbia interpreta correttamente: per applicazioni commerciali, se distribuisci MySQL unitamente al tuo prodotto, devi acquistare un'apposita licenza commerciale.

Ad ogni modo, non hai mai considerato di utilizzare InterBase? E' decisamente potente e veloce, è disponibile per diverse piattaforme e inoltre supporta foreign key, trigger e stored procedure. La versione 6.0 è stata resa OpenSource da Borland, che ora sta continuando lo sviluppo di versioni successive e commerciali del database in questione (sono uscite la 6.5 e la 7). Dal sorgente di InterBase 6.0 è nato il progetto FireBird, che si occupa di aggiornare e ampliare i sorgenti di InterBase 6.0.

Per quanto riguarda FastReport, so che viene distribuito con il codice sorgente ed è modificabile a piacimento...solo che - a mio parere - i sorgenti sono un gran groviglio! :)

Spero di averti dato indicazioni utili.

Ciao! :ciauz:

hwplanet
27-03-2003, 17:47
il fatto che dbExpress sia fornito anche nella Professional è rassicurante ... farò le prove del caso e vedrò se usare dbExpress o ZeosLib.

Quanto a mysql, il fatto che sia a pagamento gli fa decisamente perdere quota. Anche PostgreSQL comunque non mi convince ... non per questioni di licenza ma perchè in Windows è scarsamente integrabile per quel che ho visto.

Avevo preso in considerazione Interbase ma ha un costo molto elevato, a quel punto compro MySQL. Non capisco se la versione OpenSource sia tuttora supportata dalla Borland: la 6.01 è del gennaio 2001, e gli sviluppi hanno riguardato solo la versione commerciale, non quella OpenSource; l'idea di realizzare un software basato su un database "morto" non mi ispira fiducia. Viceversa leggendo sul sito di FireBird mi sembra che la cosa prometta bene come qualità del progetto ... e dice esplicitamente nel sito che non c'è nessun importo da pagare per distribuire il db assieme al proprio software. Quindi sembrerebbe che FireBird sia idoneo, solo che ora nasce il problema di integrarlo con Delphi: Interbase ha le sue brave componenti per funzionare con Delphi (anche se anche qui bisognerebbe sapere se sono incluse nella versione Professional...)... ma FireBird le ha ?

alka
27-03-2003, 18:05
Sebbene Borland non fornisca assistenza su InterBase 6.01 poichè è OpenSource, questo non significa che si tratti di un database "morto".

Ci sono ancora persone che sviluppano applicativi rivendendo la versione 5.5 di InterBase.

L'uso di una versione aggiornata deve essere giustificata dallo sfruttamento delle nuove funzionalità introdotte, altrimenti va benissimo anche una versione precedente.

Puoi comunque usare tranquillamente FireBird: i componenti IBExpress funzionano correttamente anche con quel formato, che è un diretto discendente di InterBase.

FireBird è il progetto che amplia e sviluppa i sorgenti "donati" da Borland. Il nome è stato scelto poichè i nuovi prodotti derivati non possono avere il nome InterBase, poichè tale nome è un marchio registrato da Borland che vive grazie allo sviluppo Borland delle versioni commerciali successivi alla versione 6.01.

Provare per credere...

Ciao! :ciauz:

hwplanet
27-03-2003, 18:38
Originariamente inviato da alka
Sebbene Borland non fornisca assistenza su InterBase 6.01 poichè è OpenSource, questo non significa che si tratti di un database "morto".

Ci sono ancora persone che sviluppano applicativi rivendendo la versione 5.5 di InterBase.

L'uso di una versione aggiornata deve essere giustificata dallo sfruttamento delle nuove funzionalità introdotte, altrimenti va benissimo anche una versione precedente.

Puoi comunque usare tranquillamente FireBird: i componenti IBExpress funzionano correttamente anche con quel formato, che è un diretto discendente di InterBase.

FireBird è il progetto che amplia e sviluppa i sorgenti "donati" da Borland. Il nome è stato scelto poichè i nuovi prodotti derivati non possono avere il nome InterBase, poichè tale nome è un marchio registrato da Borland che vive grazie allo sviluppo Borland delle versioni commerciali successivi alla versione 6.01.

Provare per credere...

Ciao! :ciauz:

Si certo ... chissà quante persone ci sono ad esempio che magari sviluppano con Delphi 5 o 6 ... mica appena esce la nuova versione si butta la vecchia. Con database "morto" intendo dire che mi pare non avrà sviluppi, quindi non ci saranno nuove versioni, nè supporto per bug-fix o tanto meno per supportare nuovi os in futuro. Quindi mi pare dare molte più garanzie FireBird in questo senso.

Quanto alle componenti IBExpress ... Mica le ho trovate in Delphi6 ! Trovo delle componenti Interbase, non so se vadano ugualmente bene ...

l.golinelli
27-03-2003, 18:41
Le componenti InterBase vanno bene asnche per FireBird

alka
27-03-2003, 18:44
Originariamente inviato da hwplanet
Quanto alle componenti IBExpress ... Mica le ho trovate in Delphi6 ! Trovo delle componenti Interbase, non so se vadano ugualmente bene ...

I componenti delle pagine InterBase e InterBase Admin della Palette appartengono al package conosciuto col nome di IBExpress.

Ciao! :ciauz:

hwplanet
27-03-2003, 19:02
intanto grazie per la disponibilità :)

FireBird sarà quasi certamente la mia scelta, ma mi rimangono un paio di questioni:

- pensate che la compatibilità tra la componente Interbase e il db FireBird rimarrà anche in futuro oppure potrà sorgere l'esigenza di usare componenti nuove perchè tale compatibilità si perderà magari con nuove versioni di Delphi e/o FireBird ?

- Interbase Admin non lo trovo, c'è solo Interbase, forse Interbase admin c'è in Delphi 7 ... non so, vado a ipotesi


Ora passo a provare a mettere in pratica quanto sin qua detto :)

alka
28-03-2003, 10:48
Per quanto riguarda i componenti IB Express, non è garantita la compatibilità futura di tali componenti con il database FireBird, anche se è probabile che venga sviluppato qualche package dedicato.

Ad ogni modo, mi sembrava che tu volessi fare uso di dbExpress, giusto?

In tal caso, occorre solo accaparrarsi il driver dbExpress per FireBird. Non so se è già stato sviluppato tale driver, magari perchè al momento FireBird non differisce eccessivamente da InterBase.

IB Admin è un programma shareware per la gestione di database InterBase. Esiste una versione free molto limitata, tuttavia ti suggerisco di scaricarti un programma più interessante, IB Expert, dal sito della software house che lo produce: http://www.ibexpert.com.

Esiste una versione Personal che vale la pena di osservare...

Ciao! :ciauz:

Loading