<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.ugiss.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it"><title type="html">Ribi&amp;#39;s Blog</title><subtitle type="html">Le vie della legge di Murphy sono infinite. Meglio prevenire.</subtitle><id>http://community.ugiss.org/blogs/ribi86/atom.aspx</id><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/default.aspx" /><link rel="self" type="application/atom+xml" href="http://community.ugiss.org/blogs/ribi86/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20611.960">Community Server</generator><updated>2007-10-08T23.42.00Z</updated><entry><title>Bellissimo progetto</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2008/01/29/bellissimo-progetto.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2008/01/29/bellissimo-progetto.aspx</id><published>2008-01-29T21.01.00Z</published><updated>2008-01-29T21.01.00Z</updated><content type="html">&lt;p&gt;Finalmente un po&amp;#39; di tempo da dedicare al blog!&lt;/p&gt;
&lt;p&gt;Nell&amp;#39;ultimo mese sono stato preso da un progetto molto interessante che la mia azienda ha realizzato per conto del nostro cliente più importante.&lt;br /&gt;La cosa che mi fa essere veramente fiero di questo lavoro è il fatto di aver utilizzato parecchie funzionalità che finora avevo utilizzato sporadicamente e solo per soluzioni piuttosto piccole. Nello specifico, l&amp;#39;applicazione in questione sfrutta:&lt;/p&gt;
&lt;p&gt;SQL Server 2005 Standard Edition&lt;br /&gt;SQL Server 2005 Integration Services&lt;br /&gt;XML / XSLT&lt;br /&gt;XQuery&lt;br /&gt;Web Services ASP.NET 2.0 (tradizionali, non WCF ..peccato!)&lt;br /&gt;Web Application ASP.NET 2.0&lt;br /&gt;IBatis&lt;br /&gt;SFTP&lt;br /&gt;Internet Explorer 7&lt;/p&gt;
&lt;p&gt;L&amp;#39;esigenza del nostro cliente (un importante spedizioniere) era quella di permettere ad un proprio cliente di alto livello di non produrre in forma cartacea i documenti di trasporto (DDT) ma bensì di farli stampare direttamente dalle filiali di destinazione della merce (stiamo parlando di oltre 2000 documenti al giorno). In questo modo il risparmio di tempo (e carta!) sarebbe stato imponente, con tutti i vantaggi che ne conseguono.&lt;br /&gt;Il cliente ha proposto l&amp;#39;XML come formato di scambio dei documenti (alla quale applicare un foglio XSLT per la formattazione e l&amp;#39;impaginazione) e ha modificato il proprio software perché scrivesse su un server SFTP i files contenenti i documenti man mano che la merce viene smistata per lo spedizioniere.&lt;/p&gt;
&lt;p&gt;Lato nostro si è provveduto ha realizzare un database SQL Server 2005 in grado di ospitare i documenti ed un package Integration Services 2005 schedulato tramite Agent che si occupa di prelevare il files ad orari prestabiliti dal server SFTP (abbiamo utilizzato un tool gratuito esterno: il &lt;a class="" title="psftp" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank"&gt;psftp&lt;/a&gt; ) e di caricarli all&amp;#39;interno del database.&lt;br /&gt;Per permettere un&amp;#39;indicizzazione &amp;quot;semplice&amp;quot; di questi dati, durante la fase di caricamento (che utilizza OPENROWSET) il documento viene esplorato utilizzando XQuery e ne vengono estratte due informazioni fondamentali: il NumeroDocumento (identificativo univoco del documento) e la DataDocumento. Queste due informazioni vengono inserite in due campi dedicati affiancati dal campo varbinary(max) che contiene tale documento.&lt;br /&gt;I documenti sono così disponibili per l&amp;#39;applicazione.&lt;/p&gt;
&lt;p&gt;Ora è necessario fronteggiare un secondo problema, visti i tempi molto stretti da sfruttare per analisi, sviluppo e test (circa 25 giornate in tutto) sarebbe stato difficoltoso realizzare un&amp;#39;applicazione client da installare sui pc di tutte le filiali (alcune di esse sono connesse tramite connessioni remote e quindi non raggiungibili tramite controllo remoto). La soluzione più semplice che ci è venuta in mente è stata quella di sviluppare un&amp;#39;applicazione web raggiungibile dalle filiali che permettesse la stampa dei DDT come normale pagina web (il risultato della trasformazione XSLT è infatti un documento HTML).&lt;/p&gt;
&lt;p&gt;Per sicurezza abbiamo comunque sviluppato l&amp;#39;applicazione su due livelli: un web service ASP.NET 2.0 espone i metodi principali di accesso ai documenti e alle altre informazioni necessarie, mentre un&amp;#39;applicazione web effettua la trasformazione e rende disponibili i documenti agli operatori. In questo modo, qualora la stampa da Internet Explorer di un così grande numero di documenti non avesse dato risultati soddisfacenti, ci sarebbe comunque stato il tempo di sviluppare l&amp;#39;applicazione client e diramarla alle filiali, limitando i ritardi. Tutto il Data Access Layer è stato appoggiato su IBatis (&lt;a class="" title="IBatis" href="http://ibatis.apache.org/" target="_blank"&gt;http://ibatis.apache.org/&lt;/a&gt;)&amp;nbsp;un progetto molto interessante che avevo già utilizzato per parecchie applicazioni web, forse meno completo di nHibernate ma molto performante e facile da utilizzare.&lt;/p&gt;
&lt;p&gt;Dopo il login, l&amp;#39;applicazione identifica la filiale di appartenenza dell&amp;#39;utente, si connette al database di tracciatura delle spedizioni e rende disponibili alla stampa solo i documenti effettivamente tracciati nella filiale (questo per evitare inutili ristampe di documenti). Considerando la criticità dell&amp;#39;ottimizzazione dei tempi operativi (già di per sé impattata dal nuovo compito assegnato, quello di stampare i DDT del cliente), si è cercato di limitare al massimo il numero di clic da effettuare per stampare i documenti. Effettuato il login, normalmente è possibile stampare con solo 4 clic.&lt;/p&gt;
&lt;p&gt;Durante la fase di test è però affiorato un problema non facilmente raggirabile: il motore di stampa di Internet Explorer 6 non è potente come quello della versione 7. L&amp;#39;impostazione dei margini non era permantente su tutti i client e non esisteva la possibilità di inquadrare il documento (composto da un logo e da veramente tanto testo) in una sola pagina. Anche modificando l&amp;#39;XSLT del documento non si ottenevano risultati soddisfacenti. Dopo alcuni tentativi, si è deciso di diramare l&amp;#39;aggiornamento a Internet Explorer 7.0 a tutti i client Windows XP interessati da questo sistema e di Mozilla FireFox 2.0 ai client Windows 2000. Problema risolto.&lt;/p&gt;
&lt;p&gt;Il test (sia tecnico che operativo) è iniziato con l&amp;#39;invio di 200 documenti al giorno per arrivare ad oggi a 1200 senza intoppi. Nelle prossime settimane il numero di documenti salirà ancora fino a superare la soglia di 2000 documenti al giorno (ovvero tutte le spedizioni del cliente).&lt;/p&gt;
&lt;p&gt;Da segnalare un&amp;#39;altro work around resosi necessario per le filiali con più spedizioni: la stampa dall&amp;#39;applicazione web deve essere inviata alla stampante sotto forma di unico documento, questo perché in caso di 300 documenti Internet Explorer per motivi di sicurezza dovrebbe richiedere all&amp;#39;utente 300 conferme di stampa (un&amp;#39;applicazione web non può generare una coda di stampa sul client). Purtroppo alcune stampanti di filiale hanno un buffer limitato e questo faceva rallentare la stampa (in alcuni casi fino a bloccarla) dopo circa 50 documenti se il totale superava i 100 DDT. Per ovviare a questo inconveniente il sistema ora stampa a blocchi di 50 documenti (il numero di clic aumenta, ma è sostenibile dalle filiali).&lt;/p&gt;
&lt;p&gt;Devo dire che è stata (ed è tutt&amp;#39;ora in quanto il test non è ancora terminato) veramente una bella esperienza. Ho proposto e implementato con successo alcune nuove tecnologie (Microsoft e non) presso un cliente importante e il risultato è stato molto soddisfacente. L&amp;#39;elemento più evidente sono stati i tempi di sviluppo: 25 giornate uomo totali (utilizzando 1, a volte 2 risorse), 10 per avviare il test.&lt;/p&gt;
&lt;p&gt;Accidenti, ho scritto proprio un bel papiro... spero di non avervi annoiato troppo, e spero che questa esperienza possa servirvi nei vostri progetti.&lt;/p&gt;
&lt;p&gt;Per chiarimenti o curiosità non esitate a contattarmi.&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=3168" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term=".NET" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/.NET/default.aspx" /><category term="XML" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/XML/default.aspx" /><category term="XSLT" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/XSLT/default.aspx" /><category term="SFTP" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SFTP/default.aspx" /><category term="DDT" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/DDT/default.aspx" /><category term="XQuery" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/XQuery/default.aspx" /><category term="Integration Services" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Integration+Services/default.aspx" /><category term="IBatis" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/IBatis/default.aspx" /></entry><entry><title>Nuovi attrezzi... (un po' OT)</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/12/08/nuovi-attrezzi-un-po-ot.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/12/08/nuovi-attrezzi-un-po-ot.aspx</id><published>2007-12-08T14.45.00Z</published><updated>2007-12-08T14.45.00Z</updated><content type="html">&lt;p&gt;La mia azienda mi ha affidato un nuovo notebook:&lt;/p&gt;
&lt;p&gt;DELL Vostro 1500&lt;/p&gt;
&lt;p&gt;Intel Core&amp;nbsp;2 Duo T7500 2.2Ghz&lt;/p&gt;
&lt;p&gt;RAM 2048Mb&lt;/p&gt;
&lt;p&gt;Hard Disk 160Gb SATA 7200rpm&lt;/p&gt;
&lt;p&gt;GeForce 8600M GT 256Mb&lt;/p&gt;
&lt;p&gt;Schermo 15,4 WSXGA + True Life (risoluzione 1680 x 1050)&lt;/p&gt;
&lt;p&gt;Microsoft Windows Vista Business Edition&lt;/p&gt;
&lt;p&gt;Veramente una bella macchina... Sto finendo in questi giorni la migrazione dal mio vecchio notebook che dopo due anni di onorato servizio (e di query massacra processore...) andrà in pensione diventando un notebook &amp;quot;casalingo&amp;quot;.&lt;/p&gt;
&lt;p&gt;Alcuni giorni dopo, passando davanti alla vetrina di un negozio di telefonia, ho notato un&amp;#39;offerta sullo smartphone Samsung SGH-i600... non ho resistito e l&amp;#39;ho acquistato.&lt;/p&gt;
&lt;p&gt;Di serie utilizza Windows Mobile 5 (&amp;quot;sporcato&amp;quot; dalle personalizzazioni di TIM...), ma entro 12 ore dall&amp;#39;acquisto gli era già stato applicato il de-brand, l&amp;#39;upgrade del firmware e l&amp;#39;aggiornamento a Windows Mobile 6 Standard Edition (caratteristica molto pubblicizzata durante il lancio del prodotto ma inspegabilmente non ancora disponibile in Italia e Austria).&lt;/p&gt;
&lt;p&gt;&lt;img title="Samsung SGH-i600" style="WIDTH:600px;HEIGHT:480px;" height="480" alt="Samsung SGH-i600" src="http://community.ugiss.org/blogs/ribi86/samsung_i600.jpg" width="600" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;Ho fatto un ottimo acquisto, è semplicissimo configurare account di posta, sottoscrivere RSS, ascoltare podcast, condividere la connessione internet con il portatile tramite bluetooth, utilizzare GoogleMaps...&lt;/p&gt;
&lt;p&gt;Con questo smartphone ho anche potuto sperimentare la velocità dell&amp;#39;HSDPA... davvero niente male!&lt;/p&gt;
&lt;p&gt;Ieri ho scaricato il &lt;a class="" title="Windows Mobile 6 SDK" href="http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&amp;amp;mg_id=10111&amp;amp;displaylang=en" target="_blank"&gt;Windows Mobile 6 SDK&lt;/a&gt;, per fare qualche test di sviluppo su smartphone (Standard Edition), finora infatti ho sviluppato solo applicativi per Windows Mobile 5 PPC&amp;nbsp;Phone Edition.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2804" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="Off Topic" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Off+Topic/default.aspx" /><category term="Notebook" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Notebook/default.aspx" /><category term="Smartphone" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Smartphone/default.aspx" /><category term="Windows Mobile" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Windows+Mobile/default.aspx" /></entry><entry><title>SQL Server 2008 Katmai - November CTP</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/11/19/sql-server-2008-katmai-november-ctp.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/11/19/sql-server-2008-katmai-november-ctp.aspx</id><published>2007-11-19T19.22.00Z</published><updated>2007-11-19T19.22.00Z</updated><content type="html">&lt;p&gt;Vi segnalo il rilascio della nuova CTP di Katmai:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3BF4C5CA-B905-4EBC-8901-1D4C1D1DA884&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=3BF4C5CA-B905-4EBC-8901-1D4C1D1DA884&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2620" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term="SQL Server 2008" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server+2008/default.aspx" /><category term="Katmai" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Katmai/default.aspx" /></entry><entry><title>Errore interessante...</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/11/15/errore-interessante.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/11/15/errore-interessante.aspx</id><published>2007-11-15T22.53.00Z</published><updated>2007-11-15T22.53.00Z</updated><content type="html">&lt;p&gt;Questa settimana mi sono trovato davanti&amp;nbsp;ad un nuovo (e curioso) problema con SQL:&lt;/p&gt;
&lt;p&gt;Situazione:&lt;/p&gt;
&lt;p&gt;Nel&amp;nbsp;database di una nuova applicazione (su SQL 2005 SP2) ho bisogno di effettuare una query che metta in JOIN una tabella di un&amp;#39;altro server (SQL 2000 SP4). Fino a qui niente di strano.&lt;/p&gt;
&lt;p&gt;Nelle clausole ON della JOIN (ma lo stesso risultato si ottiene utilizzando le WHERE della SELECT) esiste una controllo su un campo data del record. Devo in pratica effettuare la JOIN solo con l&amp;#39;ultimo record in ordine temporale della mia query remota. Per farvi capire, vi riporto un estratto del codice:&lt;/p&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;/* ... */&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;INNER&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;JOIN&lt;/font&gt;&lt;font size="2"&gt; [server_remoto]&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;mio_database&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;tabella1 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;AS&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ON&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo1 &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; D&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo4&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;AND&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo2 &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; M&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo1&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;AND&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo3 &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; F&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo1&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;AND&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;data &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SELECT&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;MAX&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;data&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FROM&lt;/font&gt;&lt;font size="2"&gt; [server_remoto]&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;mio_database&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;tabella1&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;WHERE&lt;/font&gt;&lt;font size="2"&gt; campo1 &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo1&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;AND&lt;/font&gt;&lt;font size="2"&gt; campo2 &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo2&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;AND&lt;/font&gt;&lt;font size="2"&gt; campo3 &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; T1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;campo3)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;/*&amp;nbsp;... */&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;Una query comunque semplice. Peccato che mi venga restituito il seguente errore:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="1"&gt;
&lt;p&gt;Msg 8180, Level 16, State 1, Line 1&lt;/p&gt;
&lt;p&gt;Statement(s) could not be prepared.&lt;/p&gt;
&lt;p&gt;Msg 107, Level 16, State 2, Line 1&lt;/p&gt;
&lt;p&gt;The column prefix &amp;#39;Tbl1007&amp;#39; does not match with a table name or alias name used in the query.&lt;/p&gt;
&lt;p&gt;Msg 107, Level 16, State 2, Line 1&lt;/p&gt;
&lt;p&gt;The column prefix &amp;#39;Tbl1007&amp;#39; does not match with a table name or alias name used in the query.&lt;/p&gt;
&lt;p&gt;Msg 107, Level 16, State 2, Line 1&lt;/p&gt;
&lt;p&gt;The column prefix &amp;#39;Tbl1007&amp;#39; does not match with a table name or alias name used in the query.&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;Andando a cercare informazioni su questo tipo di errore (incuriosito e spiazzato dal Tbl1007, l&amp;#39;alias generico/temporaneo che SQL utilizza quendo gli fa comodo) scopro che l&amp;#39;argomento è documentato in maniera un po&amp;#39; confusa...&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;Dopo un po&amp;#39; di ricerche trovo questo articolo:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;a href="http://support.microsoft.com/kb/936223/en-us"&gt;http://support.microsoft.com/kb/936223/en-us&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;Richiedo l&amp;#39;hotfix (quello che aggiorna SQL 2005 SP2 alla versione 9.0.3175), lo ricevo, lo installo et voilà... il problema NON si risolve!&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;Credo che mi converrà tentare di &amp;quot;girare&amp;quot; la query in qualche modo (si accettano consigli).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;E&amp;#39; comunque strano che un baco rilevato, documentato (anche se poco) e teoricamente corretto in un hotfix non venga minimamente modificato da quest&amp;#39;ultimo, non mi era mai capitato. L&amp;#39;articolo segnala anche un workaround&amp;nbsp;che consiste nell&amp;#39;utilizzo di&amp;nbsp;ODBC per la connessione al server SQL 2000. Impraticabile per l&amp;#39;ambiente di produzione sul quale dovrò portare l&amp;#39;applicazione, personalmente non l&amp;#39;ho testato (ma vi farò sapere).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&lt;font color="#000000"&gt;Se avrò news in merito vi terrò aggiornati (sempre che non lo facciate voi per primi).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Notte...&lt;font color="#808080" size="2"&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2561" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term="SP2" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SP2/default.aspx" /><category term="SQL Server 2000" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server+2000/default.aspx" /><category term="Linked Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Linked+Server/default.aspx" /></entry><entry><title>Transaction Processing Performance Council</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/11/02/transaction-processing-performance-council.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/11/02/transaction-processing-performance-council.aspx</id><published>2007-11-02T16.46.00Z</published><updated>2007-11-02T16.46.00Z</updated><content type="html">&lt;p&gt;Beh, se avete un cliente disposto a spendere qualche milione di dollari per i sui server, non potete non dare un&amp;#39;occhiata al sito del&amp;nbsp;Transaction Processing Performance Council (&lt;a href="http://www.tpc.org/"&gt;http://www.tpc.org/&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;E&amp;#39; veramente curioso vedere schede come &lt;a class="" title="TPC" href="http://www.tpc.org/results/FDR/TPCC/hp_orca1tb_win64_fdr.pdf"&gt;questa&lt;/a&gt;, dove al fondo trovi persino il preventivo di Microsoft e gli screenshots&amp;nbsp;degli ordini online delle SAN....&lt;/p&gt;
&lt;p&gt;Che barboni... che saranno mai 64 licenze di SQL Server Enterprise Edition?&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2441" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="Performance" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Performance/default.aspx" /><category term="License" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/License/default.aspx" /><category term="Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Server/default.aspx" /></entry><entry><title>Microsoft Office Visio 2007 &gt; Diagramma Pivot</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/19/microsoft-office-visio-2007-gt-diagrammi-pivot.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/19/microsoft-office-visio-2007-gt-diagrammi-pivot.aspx</id><published>2007-10-18T22.19.00Z</published><updated>2007-10-18T22.19.00Z</updated><content type="html">&lt;p&gt;Oggi ho aperto Visio per realizzare un paio di schemi per un nuovo progetto e, esplorando i tipi di disegno, ho trovato una cosa interessante: i Diagrammi Pivot. Non so voi, ma io non li avevo mai utilizzati.&lt;/p&gt;
&lt;p&gt;Guidato dalla curiosità ne ho creato subito uno e l&amp;#39;ho collegato ad un cubo Analisys Services 2005. L&amp;#39;interfaccia è comoda quanto quella di Excel ed il risultato è veramente &lt;a class="" title="Visio Diagramma Pivot" href="http://community.ugiss.org/blogs/ribi86/Visio_DiagrammaPivot.jpg" target="_blank"&gt;notevole&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I dati vengono distribuiti in maniera gerarchica secondo le dimensioni che vogliamo mostrare, possono essere abbinate immagini e si può variare la disposizione degli elementi. Inoltre, anche aggiungendo più misure (ho provato anche con 5 o 6) il diagramma rimane leggibile e ordinato. Poi il valore aggiunto lo danno i temi di Visio (i soliti degli altri disegni, ma comunque carini), con qualche ritocco il diagramma diventa davvero bello e professionale.&lt;/p&gt;
&lt;p&gt;Per ora ci ho solo giocato, ma magari a breve mi verrà in mente qualche applicazione in qualche progetto reale, vi farò sapere.&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2267" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="Analisys Services" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Analisys+Services/default.aspx" /><category term="Digramma" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Digramma/default.aspx" /><category term="Olap" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Olap/default.aspx" /><category term="Office" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Office/default.aspx" /></entry><entry><title>Collation Checker</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/15/collation-checker.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/15/collation-checker.aspx</id><published>2007-10-15T07.01.00Z</published><updated>2007-10-15T07.01.00Z</updated><content type="html">&lt;p&gt;Riprendendo il mio &lt;a class="" title="asp-net-membership-provider-e-collation-conflict" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/12/asp-net-membership-provider-e-collation-conflict.aspx"&gt;post&lt;/a&gt; dell&amp;#39;altro giorno, vi segnalo un bellissimo script per rilevare incongruenze riguardanti le collation utilizzate. Rileva ad esempio database con collation diversa da quella di default, collation diverse nello stesso db e differenze tra le colonne.&lt;/p&gt;
&lt;p&gt;Veramente utilissimo, è testato per SQL 2000 SP4 e SQL 2005.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sqlservercentral.com/scripts/Miscellaneous/31969/"&gt;http://www.sqlservercentral.com/scripts/Miscellaneous/31969/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2194" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term="Conflict" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Conflict/default.aspx" /><category term="Collation" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Collation/default.aspx" /></entry><entry><title>MSDN: C'è qualche problemino?</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/14/msdn-c-232-qualche-problemino.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/14/msdn-c-232-qualche-problemino.aspx</id><published>2007-10-14T12.52.00Z</published><updated>2007-10-14T12.52.00Z</updated><content type="html">&lt;p&gt;E&amp;#39; tutto il giorno che non riesco a connettermi a &lt;a href="http://blogs.msdn.com/"&gt;http://blogs.msdn.com/&lt;/a&gt;&amp;nbsp;. Ho provato anche da differenti connessioni, il blog di Technet funziona senza problemi invece.&lt;/p&gt;
&lt;p&gt;Mamma Microsoft, cosa mi combini???&lt;/p&gt;
&lt;p&gt;&amp;nbsp;[ore 17:40]&lt;/p&gt;
&lt;p&gt;Ancora niente, ma a questo punto non credo c&amp;#39;entri Microsoft. Curioso comunque, vi allego i tracert.&lt;/p&gt;
&lt;p&gt;MSDN&lt;/p&gt;
&lt;p&gt;&lt;img title="MSDN Tracert" style="WIDTH:647px;HEIGHT:370px;" height="370" alt="MSDN Tracert" src="http://community.ugiss.org/blogs/ribi86/msdn.jpg" width="647" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;Technet&lt;/p&gt;
&lt;p&gt;&lt;img title="Technet Tracert" style="WIDTH:637px;HEIGHT:337px;" height="337" alt="Technet Tracert" src="http://community.ugiss.org/blogs/ribi86/technet.jpg" width="637" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2191" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author></entry><entry><title>Censimento del Catalogo Reports</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/13/censimento-del-catalogo-reports.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/13/censimento-del-catalogo-reports.aspx</id><published>2007-10-13T16.43.00Z</published><updated>2007-10-13T16.43.00Z</updated><content type="html">&lt;p&gt;Mi è capitato di dover &amp;quot;censire&amp;quot; tutti i report che avevo realizzato nel tempo per un cliente (più di 40). In rete ho trovato diversi modi per farlo, ma a me serviva qualcosa di molto veloce.&lt;/p&gt;
&lt;p&gt;Il database ReportServer contiene tutte le informazioni di cui avevo bisogno, ho quindi realizzato&amp;nbsp;questo &lt;a class="" title="Censimento Report SSRS" href="http://community.ugiss.org/blogs/ribi86/CensimentoReport_SSRS2005.sql.txt" target="_blank"&gt;script&lt;/a&gt;&amp;nbsp;che non fa altro che esplorare gli item della tabella Catalog. Visualizza solo le informazioni base, ma può essere esteso per mostrare anche tutte le sottoscrizioni (tabella Subscriptions)&amp;nbsp;o creare statistiche sull&amp;#39;esecuzione dei reports (tabella ExecutionLog).&lt;/p&gt;
&lt;p&gt;Basta poi utilizzarlo come dataset di un nuovo report&amp;nbsp;e il gioco è fatto.&lt;font size="2"&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2182" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="Reporting Services" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Reporting+Services/default.aspx" /><category term="Reports" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Reports/default.aspx" /></entry><entry><title>Asp.Net Membership Provider e Collation Conflict</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/12/asp-net-membership-provider-e-collation-conflict.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/12/asp-net-membership-provider-e-collation-conflict.aspx</id><published>2007-10-11T23.59.00Z</published><updated>2007-10-11T23.59.00Z</updated><content type="html">&lt;p&gt;Ultimamente mi sono trovato anch&amp;#39;io di fronte al simpatico errore &amp;quot;Cannot resolve collation conflict for equal to operation.&amp;quot; effettuando il deploy in produzione del db di una applicazione Asp.Net 2.0 che utilizza il Membership Provider. Ovviamente è successo sul server del cliente (doh!).&lt;/p&gt;
&lt;p&gt;Analizziamo il problema:&lt;/p&gt;
&lt;p&gt;Sviluppo un&amp;#39;applicazione Asp.Net utilizzando il mio database locale SQL Server 2005 (primo errore, il cliente ha solo server con SQL 2000). Al momento del rilascio di una pre-release genero lo script di tutto il db garantendo la compatibilità con&amp;nbsp;la versione&amp;nbsp;2000.&amp;nbsp;Testo la creazione del db e la sua esecuzione prima su un&amp;#39;istanza locale di SQL Server 2000 e poi su macchina virtuale Windows Server 2003 sempre con la stessa versione del prodotto. Tutto ok.&lt;/p&gt;
&lt;p&gt;Durante l&amp;#39;esecuzione dello script sul server del cliente si verifica il seguente errore:&lt;/p&gt;
&lt;p&gt;Server: Msg 446, Level 16, State 9, Procedure aspnet_UsersInRoles_AddUsersToRoles, Line 45&lt;br /&gt;Cannot resolve collation conflict for equal to operation.&lt;br /&gt;Server: Msg 446, Level 16, State 9, Procedure aspnet_UsersInRoles_RemoveUsersFromRoles, Line 50&lt;br /&gt;Cannot resolve collation conflict for equal to operation.&lt;/p&gt;
&lt;p&gt;Motivo: tutte le mie istanze di test utilizzano la collation di default del server e dei db Latin1_General_CI_AS, mentre il server del cliente sembra utilizzare la SQL_Latin1_General_CP1_CI_AS in almeno uno dei casi.&lt;/p&gt;
&lt;p&gt;All&amp;#39;interno delle due stored procedures viene dichiarata una variabile senza la dichiarazione esplicita della collation da utilizzare:&lt;/p&gt;
&lt;p&gt;DECLARE @tbNames&amp;nbsp;table(Name nvarchar(256) NOT NULL PRIMARY KEY)&lt;/p&gt;
&lt;p&gt;Più avanti nel codice della SP troviamo:&lt;/p&gt;
&lt;p&gt;SELECT RoleId&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp; dbo.aspnet_Roles ar, @tbNames t&lt;br /&gt;WHERE&amp;nbsp; LOWER(t.Name) = ar.LoweredRoleName AND ar.ApplicationId = @AppId&lt;/p&gt;
&lt;p&gt;A questo punto l&amp;#39;engine deve confrontare due valori senza sapere quale collation utilizzare (le differenze tra due collation possono essere moltissime: ordine delle lettere dell&amp;#39;alfabeto, case sensitive/insensitive, ecc...).&lt;/p&gt;
&lt;p&gt;Una delle soluzioni (cito quella che ho utilizzato) consiste nel modificare la dichiarazione della variabile @tbNames&amp;nbsp;in entrambe le SP aggiungendo la dichiarazione della collation:&lt;/p&gt;
&lt;p&gt;DECLARE @tbNames table(Name nvarchar(256) COLLATE database_default NOT NULL PRIMARY KEY)&lt;/p&gt;
&lt;p&gt;Come mai questa istruzione risolve il problema? Sinceramente non sono sceso troppo nei dettagli (quindi non prendete questa spiegazione come oro colato), ma immagino che il datatype TABLE funzioni in maniera molto simile ad una tabella temporanea. Le colonne delle tabelle temporanee, se non specificato, utilizzano la collation di default del TempDb, il cui valore può essere diverso da quello di default dei database utente.&lt;/p&gt;
&lt;p&gt;Quindi, specificando alla colonna della variabile @tbNames di utilizzare la collation di default degli user db, SQL Server è in grado di effettuare la equal operation&amp;nbsp;visto che&amp;nbsp;entrambe i campi (a patto che non abbiate pasticciato con lo script di creazione del db) utilizzano la stessa collation.&lt;/p&gt;
&lt;p&gt;Non inserisco links a proposito di questo argomento perchè se effettuate una ricerca su Google scrivendo&amp;nbsp;&amp;quot;Collation Conflict ASP.NET&amp;quot; avete da leggere per qualche settimana.&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2163" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term=".NET" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/.NET/default.aspx" /><category term="Conflict" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Conflict/default.aspx" /><category term="Collation" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Collation/default.aspx" /></entry><entry><title>Rebuild di tutti gli indici</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/10/rebuild-di-tutti-gli-indici.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/10/rebuild-di-tutti-gli-indici.aspx</id><published>2007-10-10T00.54.00Z</published><updated>2007-10-10T00.54.00Z</updated><content type="html">&lt;p&gt;Segnalo il consiglio di Andrea Benedetti su come eseguire il REBUILD di tutti gli indici di un db con un solo comando, devo dire che fa risparmiare parecchio tempo.&lt;/p&gt;
&lt;p&gt;Ecco il link:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/abenedetti/archive/2007/09/11/rebuild-di-tutti-gli-indici.aspx"&gt;http://community.ugiss.org/blogs/abenedetti/archive/2007/09/11/rebuild-di-tutti-gli-indici.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2129" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term="Indici" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Indici/default.aspx" /><category term="Tuning" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Tuning/default.aspx" /></entry><entry><title>Question of the day...</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/10/question-of-the-day.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/10/question-of-the-day.aspx</id><published>2007-10-09T23.23.00Z</published><updated>2007-10-09T23.23.00Z</updated><content type="html">&lt;p&gt;Su SqlServerCentral.com (uno dei siti di riferimento,&amp;nbsp;per chiunque abbia a che fare con questo prodotto) esiste una divertente ed utile sezione denominata Question of the Day. Contiene un&amp;nbsp;grandissimo numero di domande&amp;nbsp;su tutto&amp;nbsp;ciò che ruota intorno a SQL Server e al linguaggio SQL in generale (c&amp;#39;è da passarci la notte!). La cosa migliore secondo me è attenersi alla definizione: rispondere ad una domanda al giorno. Alla fine dell&amp;#39;anno avrete risposto a 365 domande e, vista la complessità di alcune di&amp;nbsp;esse, avrete imparato almeno 100 cose nuove. Il che vorrebbe dire che la vostra conoscenza di SQL si attesta intorno al 75% dalla quale derivo che almeno una delle seguenti affermazioni è vera:&lt;/p&gt;
&lt;p&gt;a. Fate parte del team di sviluppo di SQL Server.&lt;/p&gt;
&lt;p&gt;b. (Vi chiamate Davide Mauri) OR (Vi chiamate Gianluca Hotz) OR (Vi chiamate Andrea Benedetti) OR ... e così via con tutti gli MVP...&lt;/p&gt;
&lt;p&gt;c. Avete sbirciato sull&amp;#39;MSDN prima di rispondere (eh eh eh.. l&amp;#39;ho fatto anch&amp;#39;io, ma solo su alcune).&lt;/p&gt;
&lt;p&gt;d. Siete dei MOSTRI di SQL.&lt;/p&gt;
&lt;p&gt;In ogni caso si guadagna molto di più sbagliando, la spiegazione della risposta corretta è sempre esaustiva e se non vi basta potete aprire un post sul forum per discuterla insieme agli altri membri del sito. Che volete di più?&lt;/p&gt;
&lt;p&gt;Per farvi un esempio la domanda di oggi (ieri, dato che sono quasi le 2:00) era&lt;/p&gt;
&lt;p&gt;What is the registry key to check to see if a server needs a reboot? (tratta dal libro Pro SQL Server 2005 High Availability).&lt;/p&gt;
&lt;p&gt;Qui trovate il link per rispondere:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sqlservercentral.com/Questions"&gt;http://www.sqlservercentral.com/Questions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;è ovviamente necessaria la registrazione al sito, al termine della quale sarete 1203857548935milionesimi nella classifica Member scores and standings.&lt;/p&gt;
&lt;p&gt;In bocca al lupo!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2128" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>SQL Server Performance Dashboard Reports</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/09/sql-server-performance-dashboard-reports.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/09/sql-server-performance-dashboard-reports.aspx</id><published>2007-10-08T23.07.00Z</published><updated>2007-10-08T23.07.00Z</updated><content type="html">&lt;p&gt;A luglio Microsoft ha pubblicato un pacchetto di report relativi alle performance applicabile a SQL Server 2005 SP2 (senza SP2 ve li scordate...).&lt;/p&gt;
&lt;p&gt;La suite di report&amp;nbsp;si colloca localmente sul client dal quale avviate Management Studio, si esegue una query che crea alcune SP e&amp;nbsp;si &amp;quot;agganciano&amp;quot; i report mediante la funzionalità Custom Reports di SSMS. Roba da pochi minuti.&lt;/p&gt;
&lt;p&gt;Curiosità: i report sembrano (dico &amp;quot;sembrano&amp;quot; perchè finora sembra essere capitato solo a me...) avere problemi sui server avviati da più di qualche mese. Il problema deriva dal fatto che alcune queries all&amp;#39;interno dei report e alcune delle SP create ad hoc tentano di effettuare sottrazioni tra la data attuale (GETDATE()) e la data di avvio del servizio. Non ho ancora indagato attentamente, ma mi sembra di capire che il problema sia un banale overflow durante il DATEDIFF.&lt;/p&gt;
&lt;p&gt;Per farli funzionare in queste condizioni ho modificato manualmente (so che non è bello) una delle SP e due DataSet dei reports. Se a qualcuno interessa pubblicherò le modifiche (magari le rivediamo insieme e troviamo la soluzione ideale, il mio è un accrocchio...)&lt;/p&gt;
&lt;p&gt;Per ora vi posto il link del pacchetto, se avete server mai riavviati da qualche mese e potete testarli, scopriamo se il problema è reale o si limita alla mia configurazione:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.microsoft.com/downloads/details.aspx?familyid=1D3A4A0D-7E0C-4730-8204-E419218C1EFC&amp;amp;displaylang=en"&gt;https://www.microsoft.com/downloads/details.aspx?familyid=1D3A4A0D-7E0C-4730-8204-E419218C1EFC&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Comunque, da quanto ho visto, questi reports sembrano essere solo un assaggio di ciò che saranno i nuovi metodi di monitoring &amp;quot;visuale&amp;quot; di Katmai...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2104" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term="Reporting Services" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Reporting+Services/default.aspx" /><category term="Performance" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Performance/default.aspx" /><category term="Reports" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Reports/default.aspx" /><category term="SP2" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SP2/default.aspx" /></entry><entry><title>Quando ho avviato SQL Server?</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/09/quando-ho-avviato-sql-server.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/09/quando-ho-avviato-sql-server.aspx</id><published>2007-10-08T22.37.00Z</published><updated>2007-10-08T22.37.00Z</updated><content type="html">&lt;p&gt;Magari non vi servirà mai nella vita, ho forse servirà solo per vantarsi con i colleghi davanti alla macchinetta del caffè...&lt;/p&gt;
&lt;p&gt;In questo post del blog di&amp;nbsp;Joe Webb viene spiegato come determinare la data di avvio del servizio (di SQL 2000 e 2005) basandosi sulla data di creazione del TempDb.&lt;/p&gt;
&lt;p&gt;In SQL 2005 è anche possibile utilizzare&amp;nbsp;il campo &amp;quot;sample_ms&amp;quot;&amp;nbsp;della DMV &amp;quot;sys.dm_io_virtual_file_stats&amp;quot; il quale contiene appunto il numero di millisecondi intercorsi dall&amp;#39;ultimo avvio.&lt;/p&gt;
&lt;p&gt;Qui trovate il post:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/joew/archive/2007/10/03/60351.aspx"&gt;http://weblogs.sqlteam.com/joew/archive/2007/10/03/60351.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E&amp;#39; qui l&amp;#39;articole dei books online che descrive la vista:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms190326.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms190326.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2103" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Neodynamic Barcode Professional for Reporting Services</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/ribi86/archive/2007/10/08/neodynamic-barcode-professional-for-reporting-services.aspx" /><id>http://community.ugiss.org/blogs/ribi86/archive/2007/10/08/neodynamic-barcode-professional-for-reporting-services.aspx</id><published>2007-10-08T21.42.00Z</published><updated>2007-10-08T21.42.00Z</updated><content type="html">&lt;p&gt;Un gran bel prodotto! Si installa in un attimo (sia sull&amp;#39;ambiente di sviluppo che su quello di produzione, dato che configura automaticamente tutti i file di configurazione e di policy di SSRS), ha una configurazione semplicissima ed è davvero molto potente. Utile se avete bisogno di utilizzare barcode all&amp;#39;interno di fatture, distinte di consegna e documenti vari.&lt;/p&gt;
&lt;p&gt;Supporta un numero veramente grande di formati&amp;nbsp;e, cosa molto interessante, ne documenta tutte le caratteristiche.&lt;/p&gt;
&lt;p&gt;Si può testare (ovviamente non permette l&amp;#39;esecuzione vera e propria dei reports) senza licenza, ed una volta acquistata basta inserire la licenza nella scheda proprietà dell&amp;#39;oggetto barcode (di cui si fa drag and drop sul report).&lt;/p&gt;
&lt;p&gt;Le soluzione di licensing sono parecchie, ovviamente costa.. ma non ho trovato una soluzione freeware altrettanto valida, voi sì?&lt;/p&gt;
&lt;p&gt;Ecco il link:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;amp;prodid=7"&gt;http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;amp;prodid=7&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2102" width="1" height="1"&gt;</content><author><name>Ribi86</name><uri>http://community.ugiss.org/members/Ribi86.aspx</uri></author><category term="SQL Server" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/SQL+Server/default.aspx" /><category term="Barcode" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Barcode/default.aspx" /><category term="Reporting Services" scheme="http://community.ugiss.org/blogs/ribi86/archive/tags/Reporting+Services/default.aspx" /></entry></feed>