Newsgroup: it.comp.appl.access
Titolo: [Lungo] Valutazione motore DB: SQL Server o MySQL ?

Salve a tutti.
Alla fine ho deciso di fare il grande passo e migrare i miei BE,
attualmente gestiti da FE tramite jet, ad un vero DBMS.
Ho scelto di valutare MySQL e SQL Server 2005 Express, intendendo con
ciò di :
- effettuare l'upsize di un'applicazione esistente
- testare l'applicazione in termini di compatibilità con il DBMS
- testatare le prestazioni del DBMS.
La scelta di MySQL è stata fatta in virtù della sua grande diffusione
oltre che della migliore portabilità verso il mondo web (nel caso
servisse prima o poi).
La scelta di SQL Server è stata fatta principalmente perchè supponevo
che rimanere in ambito MS desse vantaggi sia in fase di migrazione sia
per la compatibilità con Access, anche se eventuali migrazioni su web
rimarrebbero vincolate a server anch'essi MS.
Quindi ho installato sia MySQL sia SQL Server 2005 Express ed ho
proceduto ad effettuare l'upsize.
Con MySQL è stato necessario:
- creare un db ed importare le tabelle del BE utilizzando i tools
compresi nel prodotto
- definire un collegamento ODBC
- riallegare le tabelle nel FE
Problemi/difficoltà incontrate:
- nessuno
- il FE sembra non trovi intoppi anche su funzionalità abbastanza
pesanti in termini di accesso al db e di logica applicativa
Con SQL Server 2005 Express è stato necessario:
- leggersi il documento preliminare di MS sull'upsize (e già qui stavo
per lasciare perdere, visti gli innumerevoli se e ma)
- definire un collegamento ODBC
- migrare il FE in un progetto adp usando l'apposita funzione
integrata di Access
- aggiungere il riferimento alla libreria DAO per non essere costretto
ad adattare immediatamente il codice ad ADO
Problemi/difficoltà incontrate:
- la struttura della tabelle è stata creata correttamente, ma i dati
non sono stati importati per nessuna di esse
- il progetto adp dà un errore (variabile non definita)
sull'esecuzione della prima istruzione VBA che dovrebbe recuperare
currentdb.name
 e non capisco perchè visto che i riferimenti sono a
posto e la compilazione dei moduli non dà alcuna segnalazione
- da quello che risulta dal documento MS sull'upsize, c'è poi da
verificare tutta una serie di cose: dalle origini riga delle combo
alle origini record delle maschere e dei report e chissà cos'altro
- tutta una serie di cose non vengono migrate automaticamente e quindi
andranno fatte a manina
Quindi, in estrema sintesi:
DBMS		costo migraz. 	Compatibilità
--------------------------------------------------------------------------
MySQL		    1			99%
SQL Server	    ?		  	  0%
Dove:
-il costo di migrazione per SQL Server non è quantificato dato che non
so quanto tempo impiegherò a capire perchè l'importazione dei dati non
è andata a buon fine e comunque, anche senza questo problema, è
necessario un pesante lavoro di verifica della migrazione automatica
oltre che di migrazione manuale di tutta una serie di cose.
La compatibilità di MySQL non è 100% per scrupolo, dato che mi rifiuto
di credere che vada veramente tutto bene senza toccare neanche una
virgola.
La compatibilità di SQL Server è 0% perchè c'è da adattare a mano
un'infinità di cose ed inoltre il programma si blocca sulla prima
istruzione che si cerca di eseguire che oltretutto non è neanche di
accesso ai dati !!!!
I test di prestazioni sono ancora di là da venire, dato che oltretutto
il db SQL server è vuoto.
Però, prima di procedere e perdere tempo inutilmente, volevo chiedere
a chi ha esperienze in merito:
1) prima di tutto se ciò che ho fatto ha un senso
2) se mi è sfuggito qualcosa di fondamentale prima di procedere con
l'upsize guidato verso SQL Server 2005 Express
3) se i problemi che ho incontrato derivano dal fatto che SQL Server
2005 Express è una versione limitata
4) se l'accoppiata Access/MySQL in realtà è una bomba ad orologeria
che apparentemente funziona senza intoppi e scoppia quando meno te lo
aspetti
5) quali vantaggi potrebbe presentare SQL Server 2005 Express rispetto
a MySQL che farebbero passare in secondo piano il notevole impegno
richiesto per la migrazione.
Grazie a tutti quelli che vorranno contribuire a fare luce in questa
selva oscura !

"VT @ Work" <V...@Work.it> ha scritto nel messaggio
news:45ae2656...@firewall.regione.toscana.it...
[CUT]
Ciao VT,
ho tagliato tutto perchè hai usato due diversi tipi di FE quindi non puoi
fare paragoni :-)
Con MySql hai usato un MDB collegato via ODBC
Con Sql Server hai usato un progetto ADP che si collega tramite ADODB a Sql
Server.
Le differenze sono enormi, non puoi usare DAO in un progetto ADP, non
funziona e non ha senso :-)
Se vuoi fare un paragone, collega le tabele di Sql Server con ODBC al tuo
FE, tutto funzionerà al 99%.
Per quanto riguarda l'upsize verso Sql Server 2005, con che versione di
Access hai provato ?.
Considera che Sql Server Express è un prodotto nuovo rispetto ad access2003
il cui Upsize wizard è calibrato per Sql Server 2000.
hai già provato questa utility ?
----
SQL Server Migration Assistant for Access (SSMA Access)
http://www.microsoft.com/sql/solutions/migration/access/default.mspx
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 Ciao
-- 
-- 
Massimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access

 ad adattare immediatamente il codice ad ADO
Come ti dice Giorgio, il confronto lo devi fare via ODBC con entrambi i
motori.
La configurazione Access --- Sql Server (quantomeno 2000) via ODBC funziona
bene e il mapping dei tipi di dato di JET funziona senza intoppi anche con i
Floating points.
Non ho esperienza con MySQL, so che parecchi "accessisti" lo usano, però ti
consiglio di cercare bene sullo usenet e sul web i problemi relativi a
questa configurazione.
Se non ricordo male problemi di mapping di campi a precisione singola/doppia
e varie stranezze, a volte legate anche alla versione del Driver ODBC.
Saluti.