Il problema che ho scoperto poco fa (con non poca fatica) accade in SQL Server Compact 3.5 per Mobile e non l'ho testato nelle altre edizioni.
Il bug è che l'ordine dei parameters non viene più considerato e i parametri vengono "randomizzati". Di conseguenza potreste ottenere un errore perché il tipo del parameter è invalido oppure l'inversione dei dati in query o in aggiornamento!
I fatti:
- Applicazione fatta e funzionante per SQL Mobile (quello di VS2005 tanto per intenderci)
- Ricompilato con VS2008 senza modifiche di sorgente
- Problema 1. È obbligatorio aggiornare i device con SQL Compact Mobile 3.5 perché la versione installata con VS2008 non permette di fare diversamente.
- Deploy di SQL Compact 3.5
- Deploy dell'applicazione
- Problema 2. Bug che inverte i parametri di un command
In SQL Mobile 2005 le query dovevano essere scritte con i placeholder "?" stile oledb.
In SQL Compact 3.5 le qury possono essere scritte con i named parameter.
Peccato che il listato per SQL Mobile mi ha invertito due parametri di una query. La cosa strana è che il bug accade su PocketPC 2003 CE 4.2 e non su PocketPC con CE 5.0.
Attenzione quindi perché il bug non significa errore di runtime ma è silente! In pratica sul DB possono finire due dati in ordine invertito solo perché sono dello stesso tipo.
Mia personale raccomandazione: cambiare tutte le query in modo che usino i named parameter in SQL Server Compact 3.5 a prescindere dall'edizione.