Formato Money in SQL SERVER

Pochi giorni fa ho perso più di una giornata per comprendere e risolvere un problema con la visualizzazione del contenuto di una campo Money in SQL SERVER 2008.

In particolare sul server di sviluppo il delimitatore dei decimali era la "," (virgola) mentre sul server di produzione il "." (punto).

Per cui ad esempio sul server di sviluppo veniva restituita una valuta con il seguente formato "1500,13" mentre sul server di produzione ottenevo "1500.13".

E' da notare che le impostazioni internazionali di Windows erano le stesse così come la lingua e le impostazioni dell'istanza di SQL SERVER.

Dopo aver perso non poche ore nel controllare le differenze tra le istanze di SQL SERVER mi sono accorto che Windows permette di personalizzare la visualizzazione della valuta così come dei numeri. Per scegliere il formato desiderato è sufficiente dal pannello di controllo accedere all' "Orologio e opzioni internazionali"  e quindi selezionare "Paese e lingua". Nelle "Impostazioni aggiuntive" di "Paese e lingua" è possibile modificare il formato di visualizzazione dei numeri, della valuta, dell'ora e della data.

Nulla di più semplice ma occorre saperlo ...

 

Ordinamento di una DataTable

Capita spesso di dover ordinare una DataTable; ecco una semplice procedura:
Dim dt As DataTable = ....
dt.DefaultView.Sort = "nome_colonna ASC"
Dim dsSorted As DataSet = New DataSet()
dsSorted.Tables.Add(dt.DefaultView.ToTable())
dt = dsSorted.Tables(0)

SlideCake by flepstudio

Ho avuto la fortuna di lavorare con Filippo Lughi (flepstudio) sul debugging di slidecake (www.slidecake.com) un fantastico controllo flash.
Ci siamo accorti che SWFobject aveva un problema con Internet Explorer 6+.
In pratica, la prima volta che l’swf veniva caricato andava tutto a buon fine. Ma, al refresh della stessa pagina, l’swf perdeva totalmente le coordinate dello stage, cioè gli oggetti si disponevano tutti a coordinate 0,0.
Dopo vari tentativi, siamo giunti finalmente alla soluzione:
basta passare un valore random all’swf ogni volta che viene caricato, in questo modo IE non mette in cache l’swf.
Abbiamo usato una semplice funzione Javascript:
<body>
    <div align="center" id="content">
        <script type="text/javascript">
    // <![CDATA[
        var so = new SWFObject('main.swf?cahcebuster='+ escape((new Date()).getTime()), 'main', '270', '390', '10', '#FFFFFF');
        so.useExpressInstall('swfobject/expressinstall.swf');
        so.addParam('menu', 'false');
        so.addParam('allowfullscreen', 'true');
        so.write('content');
    // ]]>
    </script>
    </div>
</body>
In particolare abbiamo concatenato una stringa variabile al nome del file swf, main.swf,
 
'main.swf?cahcebuster='+ escape((new Date()).getTime())
forzando così il broswer a non utilizzare l'swf nella cache.