posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

Brutto bug (corruzione dati) in SQL Server Compact per Mobile

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.

Print | posted on giovedì 18 dicembre 2008 23:04 | Filed Under [ Mobile ]

Feedback

Gravatar

# re: Brutto bug (corruzione dati) in SQL Server Compact per Mobile

Raf,
concordo ma se c'è il problema va evidenziato dove è: SQL CE di per sé non c'entra molto, il problema sono le API di accesso ai dati. Per questo non si può parlare di corruzione dati, altrimenti tutte le volte che qualcuno fa un errore nello scrivere codice di accesso ai dati dovremmo dare la colpa al DMBS che stiamo usando.
S.

PS: ricordati che i database sopravvivono... le applicazioni no :)
19/12/2008 16:45 | Silvano Coriani
Gravatar

# re: Brutto bug (corruzione dati) in SQL Server Compact per Mobile

@Silvano. Mah se i dati non li usi AKA accedi, allora vivranno certamente per sempre ma valgono come la spazzatura, è come un auto senza ruote. ;-)
Capisco comunque che tu vuoi separare l'engine dalle API ma il risultato purtroppo non cambia.

@Rob. Grazie
19/12/2008 19:53 | Raffaele Rialdi
Gravatar

# re: Brutto bug (corruzione dati) in SQL Server Compact per Mobile

Ciao Raf,

capita spesso che dalle pagine ufficiali ci sia qualche incrocio sui link: l'ambiente mobile da sempre è fatto da mille pezzetti e occorre fare il controllo incrociato fra versione, data di rilascio e link diversi da pagine diverse. E' sbagliato anche il link ai Server Tools che punta anch'esso alla versione senza service pack.
La prossima volta leggi i miei post quando esce qualcosa sul mondo mobile che sono più affidabili :-)

RoB
20/12/2008 12:06 | Roberto Brunetti
Gravatar

# re: Brutto bug (corruzione dati) in SQL Server Compact per Mobile

Ciao Raf,

come promesso ho fatto qualche ricerca: il bug è il numero 13537, ma non ne ho trovato traccia in nessuna KB pubblica.
Inoltre nell'elenco delle fix/kb risolte nel SP1 non viene citato come risolto.
Ne deduco, ma è una supposizione, che non sia stato risolto nel SP1 anche se avevano preso nota del bug per la sua risoluzione in SP1 come ho trovato in varie risposte ufficiali sui forum di MS.

Spero utile
RoB
23/12/2008 16:12 | Roberto Brunetti
Gravatar

# re: Brutto bug (corruzione dati) in SQL Server Compact per Mobile

Ciao Rob. Sono stato contattato dal team di sql compact.
Mi dicono che nella SP1 non dovrebbero esserci più questi problemi.

Sfortunatamente ho scoperto che la SP0 ha parecchie altre grane (SqlException a raffica, ma non ho avuto il tempo di indagare più a fondo) tutte sparite con la SP1.
Sto aspettando che mi dicano se si verifica qualche altra stranezza e nel caso la segnalo a chi di dovere.

Grazie per averlo cercato :)
24/12/2008 11:36 | Raffaele Rialdi
Gravatar

# re: Brutto bug (corruzione dati) in SQL Server Compact per Mobile

Davvero un brutto bug!
29/12/2008 02:37 | Anon
Gravatar

# re: Brutto bug (corruzione dati) in SQL Server Compact per Mobile

It's time to pass to SQLite!
29/12/2008 21:28 | Mirty
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET