<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aleprex ;)</title>
	<atom:link href="http://www.aleprex.it/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.aleprex.it/wordpress</link>
	<description>Informatica e dintorni</description>
	<lastBuildDate>Mon, 14 May 2012 20:33:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Windows 7 &#8211; Il menu contestuale &#8220;Gestione&#8221; dell&#8217;icona Computer non funziona più!</title>
		<link>http://www.aleprex.it/wordpress/windows-7-il-menu-contestuale-gestione-dellicone-computer-non-funziona-piu.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-7-il-menu-contestuale-gestione-dellicone-computer-non-funziona-piu</link>
		<comments>http://www.aleprex.it/wordpress/windows-7-il-menu-contestuale-gestione-dellicone-computer-non-funziona-piu.html#comments</comments>
		<pubDate>Mon, 14 May 2012 20:33:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tecnologie]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=544</guid>
		<description><![CDATA[Scrivo questo post per tutti quelli che come me sono incappati in questo noiosissimo problema, ovvero inspiegabilmente (come sempre ) quando proviamo a fare tasto destro sull&#8217;icona &#8220;Computer&#8221; e poi clicchiamo su Gestione (il classico Manage) non succede assolutamente nulla. Cercando un pò su internet la prima causa a cui viene attribuito il problema sembra [...]]]></description>
			<content:encoded><![CDATA[<p>Scrivo questo post per tutti quelli che come me sono incappati in questo noiosissimo problema, ovvero inspiegabilmente (come sempre <img src='http://www.aleprex.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) quando proviamo a fare tasto destro sull&#8217;icona &#8220;<strong>Computer</strong>&#8221; e poi clicchiamo su <strong>Gestione</strong> (il classico <em>Manage</em>) non succede assolutamente nulla.</p>
<p>Cercando un pò su internet la prima causa a cui viene attribuito il problema sembra essere l&#8217;installazione di un software che interagisce col menu contestuale delle risorse di windows, il tool si chiama A-Squared, se ce l&#8217;avete installato allora sappiate che risolverete semplicemente disinstallandolo.</p>
<p>Nel mio caso non era colpa di A-squared , visto che non so neanche cosa sia e a cosa serva, ma forse di un altro programma o addirittura colpa di un update di Office 2007!</p>
<p>Comunque ho trovato una soluzione più pulita e meno drastica del disinstallare i programmi:</p>
<p>Come prima cosa bisogna andare sotto la cartella di installazione di Windows (c:\windows\system32\) e facciamoci una copia di salvataggio  del file <span style="text-decoration: underline;"><strong>CompMgmtLauncher.exe , </strong></span>dopodiché scarichiamo lo stesso file ma non corrotto dal sito http://down.dllfiledump.com/English_6.1_32_/Windows/System32/CompMgmtLauncher.exe  e confrontiamo che le versioni siano le stesse, l&#8217;unica differenza che potrete trovare è sulla dimensione, il vecchio file non funzionante dovrebbe essere di 142KB mentre quello inalterato di 144KB.</p>
<p>Una volta che abbiamo controllato che le versioni sono identiche possiamo eliminare del tutto il file sotto c:\windows\system32\ e copiarci il nuovo file, fatto ciò adesso il nostro tasto destro su Computer e poi su Gestione dovrebbe funzionare nuovamente <img src='http://www.aleprex.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2012/05/articoloGestioneComputer.jpg"><img class="alignleft  wp-image-545" title="articoloGestioneComputer" src="http://www.aleprex.it/wordpress/wp-content/uploads/2012/05/articoloGestioneComputer-300x197.jpg" alt="" width="400" height="262" /></a></p>
<p>P.S.: Se le versioni dei 2 file non dovessero essere uguali fate una ricerca su internet, non dovrebbe essere difficile reperirla, ovviamente fate sempre una scansione con l&#8217;antivirus prima di eseguirla visto che si tratta sempre di file eseguibili!!!</p>
<p>PPS: Vi riporto anche il <a title="Right Click Manage stops working." href="http://social.technet.microsoft.com/Forums/en/w7itproui/thread/70897346-38b3-4872-99ec-8e1c701fc7dc" target="_blank">link</a> dove ho trovato la soluzione e dove ce ne sono anche di altre che però ho preferito non applicare.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fwindows-7-il-menu-contestuale-gestione-dellicone-computer-non-funziona-piu.html&amp;title=Windows%207%20%26%238211%3B%20Il%20menu%20contestuale%20%26%238220%3BGestione%26%238221%3B%20dell%26%238217%3Bicona%20Computer%20non%20funziona%20pi%C3%B9%21" id="wpa2a_2"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/windows-7-il-menu-contestuale-gestione-dellicone-computer-non-funziona-piu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linq To Sql &#8211; query con campi a null</title>
		<link>http://www.aleprex.it/wordpress/linq-to-sql-query-con-campi-a-null.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linq-to-sql-query-con-campi-a-null</link>
		<comments>http://www.aleprex.it/wordpress/linq-to-sql-query-con-campi-a-null.html#comments</comments>
		<pubDate>Sat, 15 Oct 2011 13:18:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Develop]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[LinqToSQL]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=517</guid>
		<description><![CDATA[Lavorando su un progetto winform in vb.net e linq to sql mi sono imbattuto in un problema in cui ho perso un pò di tempo per venirne a capo. Praticamente il problema di fondo è quello di scrivere una query linq che recuperi dei record filtrandoli su un campo che può essere anche NULL (nell&#8217;esempio [...]]]></description>
			<content:encoded><![CDATA[<p>Lavorando su un progetto winform in vb.net e linq to sql mi sono imbattuto in un problema in cui ho perso un pò di tempo per venirne a capo.<br />
Praticamente il problema di fondo è quello di scrivere una query linq che recuperi dei record filtrandoli su un campo che può essere anche NULL (nell&#8217;esempio il campo che contiene anche valori a NULL è il campo CF).<br />
Quindi avere sia i record che soddisfano la condizione del parametro sia quelli che hanno il campo a NULL.<br />
In t-sql la query sarebbe scritta più o meno in questa maniera:</p>
<pre class="brush: sql; title: ; notranslate">

SELECT * FROM Anagrafica
WHERE NOME = @Nome
AND((@cf IS NULL) OR (cf = @cf))
</pre>
<p><span id="more-517"></span></p>
<p>Con questo tipo di query sto semplicemente chiedendo di restituirmi tutti i record il cui campo Nome è uguale al parametro @Nome e il codice fiscale è uguale al parametro @cf <em>oppure </em>è NULL.</p>
<p>La stessa può essere scritta anche con l&#8217;uso della funzione <a href="http://msdn.microsoft.com/it-it/library/ms184325.aspx" target="_blank">ISNULL() </a></p>
<pre class="brush: sql; title: ; notranslate">

SELECT * FROM Anagrafica
WHERE NOME = @Nome
and (ISNULL(cf,'') = ISNULL(@cf, '') or CF = ISNULL(@cf,CF))
</pre>
<p>Ora per simulare lo stesso comportamento in una query Linq dobbiamo avvalerci di un piccolo workaround, o meglio, quello che non ho capito è come poter simulare la funzione ISNULL() in Linq, su <a title="stackoverflow.com" href="http://stackoverflow.com/questions/413084/equivalent-of-sql-isnull-in-linq" target="_blank">stackoverflow </a>consigliano di usare i tipi nullable.<br />
Andiamo a vedere come tutto questo si traduce in codice VB.NET</p>
<pre class="brush: vb; title: ; notranslate">

Dim db As New testDataContext
Dim qy = From p In db.Test
                Where p.Nome = If(ComboBox1.SelectedIndex = -1, p.Nome, CStr(ComboBox1.SelectedValue)) _
                And (If(p.CF, &quot;&quot;) = (CStr(IIf(TextBox1.Text = &quot;&quot;, If(p.CF, &quot;&quot;), TextBox1.Text))))
                Select p
</pre>
<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2011/10/linqIsNull01.jpg"><img class="size-medium wp-image-529 alignright" style="margin: 5px;" title="linqIsNull01" src="http://www.aleprex.it/wordpress/wp-content/uploads/2011/10/linqIsNull01-300x186.jpg" alt="" width="300" height="186" /></a><br />
Come potete vedere nella <strong>And </strong>specifichiamo<strong> If(p.CF,&#8221;") </strong> dove praticamente Linq lo traduce in t-sql usando la funzione <strong><a href="http://msdn.microsoft.com/it-it/library/ms190349.aspx" target="_blank">COALESCE</a></strong> il che significa che dove il campo CF risulta NULL verrà rimpiazzato con un carattere vuoto che per il motore database è gestito diversamente dal valore NULL.</p>
<p>La seconda cosa che andiamo a fare è quella di controllare che il valore che mettiamo nella nostra casella di testo (per servircene come parametro) non sia vuoto, perchè se così fosse dobbiamo fare in modo che il confronto venga effettuato con la stesso identico operatore di sinistra (ovvero come se facessimo AND 1=1).<br />
Per farlo mi sono servito di una Iif(expr,TruePart,FalsePart).</p>
<p>Se invece di voler utilizzare l&#8217;operatore di uguaglianza volessimo effettuare una Like sul parametro passato, allora la query link si semplifica ulteriormente eliminando un pò di If:</p>
<pre class="brush: vb; title: ; notranslate">

Dim qy = From p In db.Anagrafica
                 Where p.Nome = If(ComboBox1.SelectedIndex = -1, p.Nome, CStr(ComboBox1.SelectedValue)) _
                 And If(p.CF, &quot;&quot;).Contains(TextBox1.Text)
                 Select p
</pre>
<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2011/10/linqIsNull02.jpg"><img class="alignleft size-medium wp-image-535" style="margin: 5px;" title="linqIsNull02" src="http://www.aleprex.it/wordpress/wp-content/uploads/2011/10/linqIsNull02-300x217.jpg" alt="" width="300" height="217" /></a></p>
<p>Come potete vedere con la Like non c&#8217;è bisogno di ricontrollare se la nostra textbox sia vuota o meno.</p>
<p>Sinceramente non so se questo che ho utilizzato è il metodo migliore e il più pulito per poter recuperare anche i record a NULL, sinceramente in rete ho trovato molto poco, il che mi fa pensare che venga utilizzato sicuramente un altro approccio per fare la stessa cosa.</p>
<p>Ovviamente agendo lato sql server le possibilità sarebbero molte, si può creare una stored procedure e richiamarla da LINQ, oppure possiamo fare una vista della tabella che contiene i valore null e sostituirli con gli apici sfruttando la funzione ISNULL(CAMPO,&#8221;), oppure potremmo ancora mettere un default su campo in modo da non avere più valori NULL (quest&#8217;ultima soluzione la trovo un pò sporca soprattutto se nel db vengono utilizzate parecchie stored procedure che filtrano i valori a NULL con la sintassi standard <strong>Where Campo IS NULL</strong> in questa maniera ci sarebbe parecchio codice da andare a riscrivere <img src='http://www.aleprex.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Flinq-to-sql-query-con-campi-a-null.html&amp;title=Linq%20To%20Sql%20%26%238211%3B%20query%20con%20campi%20a%20null" id="wpa2a_4"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/linq-to-sql-query-con-campi-a-null.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 7 e le icone del desktop perdute!</title>
		<link>http://www.aleprex.it/wordpress/windows-7-e-le-icone-del-desktop-perdute.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-7-e-le-icone-del-desktop-perdute</link>
		<comments>http://www.aleprex.it/wordpress/windows-7-e-le-icone-del-desktop-perdute.html#comments</comments>
		<pubDate>Sun, 26 Dec 2010 11:20:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tecnologie]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=503</guid>
		<description><![CDATA[Questa mattina dopo aver acceso il PC, noto solo dopo qualche minuto (stavo ancora dormendo ) che tutte le mie icone sul desktop erano sparite! La cosa strana è che se aprivo &#8220;esplora risorse&#8221; e cliccavo sull&#8217;icona del desktop tutte le mie icone e documenti erano li. In un primo momento ho pensato che il [...]]]></description>
			<content:encoded><![CDATA[<p>Questa mattina dopo aver acceso il PC, noto solo dopo qualche minuto (stavo ancora dormendo <img src='http://www.aleprex.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) che tutte le mie icone sul desktop erano sparite! La cosa strana è che se aprivo &#8220;esplora risorse&#8221; e cliccavo sull&#8217;icona del desktop tutte le mie icone e documenti erano li. In un primo momento ho pensato che il processo di explorer.exe si fosse corrotto, e quindi dal task manager l&#8217;ho terminato e rifatto partire, ma niente.</p>
<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2010/12/iconeDesktopHide1.png"><img class="alignnone size-full wp-image-507" title="iconeDesktopHide" src="http://www.aleprex.it/wordpress/wp-content/uploads/2010/12/iconeDesktopHide1.png" alt="Visualizzare Icone Desktop su Windows 7" width="516" height="253" /></a></p>
<p>Allora<a href="http://it.wiktionary.org/wiki/googlare" target="_blank"> &#8220;googlando&#8221;</a> un pò ho trovato una <a title="windows 7 icone mancanti" href="http://blogs.sysadmin.it/ermannog/archive/2010/06/28/3513.aspx" target="_blank">cosa </a>al dir poco curiosa. Praticamente in Windows 7 esiste una procedura di manutenzione che ogni domenica mattina all&#8217;una ripulisce le icone corrotte e che non sono più valide (tipo collegamenti a periferiche USB non più collegate).</p>
<p>Per ripristinare la situazione alla normalità è bastato fare tasto destro sul desktop , cliccare sulla voce Visualizza e mettere il segno di spunta sulla voce Mostra Icone Desktop.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fwindows-7-e-le-icone-del-desktop-perdute.html&amp;title=Windows%207%20e%20le%20icone%20del%20desktop%20perdute%21" id="wpa2a_6"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/windows-7-e-le-icone-del-desktop-perdute.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concatenazione di righe utilizzando FOR XML PATH</title>
		<link>http://www.aleprex.it/wordpress/concatenazione-di-righe-utilizzando-for-xml-path.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=concatenazione-di-righe-utilizzando-for-xml-path</link>
		<comments>http://www.aleprex.it/wordpress/concatenazione-di-righe-utilizzando-for-xml-path.html#comments</comments>
		<pubDate>Sat, 20 Nov 2010 11:21:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Develop]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=489</guid>
		<description><![CDATA[Riporto oggi un tip che a volte può tornare molto utile. Può capitare di dover volere un elenco di elementi distribuiti su più righe visualizzati in un&#8217;unica riga e separati da una virgola o da qualsiasi altro carattere divisorio. Vediamo come fare: Poi eliminiamo il TAG product_desc sostituendolo con il nostro carattere separatore (in questo [...]]]></description>
			<content:encoded><![CDATA[<p>Riporto oggi un tip che a volte può tornare molto utile.<br />
Può capitare di dover volere un elenco di elementi distribuiti su più righe visualizzati in un&#8217;unica riga e separati da una virgola o da qualsiasi altro carattere divisorio.<br />
Vediamo come fare:</p>
<pre class="brush: sql; title: ; notranslate">

CREATE TABLE Products (
id INT PRIMARY KEY,
product_desc VARCHAR(50));

INSERT INTO Products VALUES (1, 'Book');
INSERT INTO Products VALUES (2, 'DVD');
INSERT INTO Products VALUES (3, 'Blueray');
INSERT INTO Products VALUES (4, 'CD');
INSERT INTO Products VALUES (5, 'Magazine');

-- Primo step ci facciamo ritornare l'xml classico
SELECT  product_desc
FROM Products
ORDER BY product_desc
FOR XML PATH('')

--RESULT:
&lt;product_desc&gt;Blueray&lt;/product_desc&gt;&lt;product_desc&gt;Book&lt;/product_desc&gt;&lt;product_desc&gt;CD&lt;/product_desc&gt;&lt;product_desc&gt;DVD&lt;/product_desc&gt;&lt;product_desc&gt;Magazine&lt;/product_desc&gt;
</pre>
<p>Poi eliminiamo il TAG <strong>product_desc </strong> sostituendolo con il nostro carattere separatore (in questo caso usiamo la virgola)</p>
<pre class="brush: sql; title: ; notranslate">

SELECT  ',' + product_desc
FROM Products
ORDER BY product_desc
FOR XML PATH('')

--RESULT:
,Blueray,Book,CD,DVD,Magazine
</pre>
<p>Adesso non rimane che eliminare il primo carattere, utilizziamo la funzione <a href="http://msdn.microsoft.com/en-us/library/ms188043.aspx">STUFF </a></p>
<pre class="brush: sql; title: ; notranslate">

SELECT STUFF((
SELECT  ',' + product_desc
FROM Products
ORDER BY product_desc
FOR XML PATH('')),1,1,'')

--RESULT:
Blueray,Book,CD,DVD,Magazine
</pre>
<p>fonte ufficiale: <a href="http://www.sqlshare.com/player.aspx?vid=526">SQLSHARE</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fconcatenazione-di-righe-utilizzando-for-xml-path.html&amp;title=Concatenazione%20di%20righe%20utilizzando%20FOR%20XML%20PATH" id="wpa2a_8"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/concatenazione-di-righe-utilizzando-for-xml-path.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SSMS Tools Pack 1.9</title>
		<link>http://www.aleprex.it/wordpress/ssms-tools-pack-1-9.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ssms-tools-pack-1-9</link>
		<comments>http://www.aleprex.it/wordpress/ssms-tools-pack-1-9.html#comments</comments>
		<pubDate>Sun, 19 Sep 2010 10:03:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=464</guid>
		<description><![CDATA[Consiglio a tutti gli appassionati di SQL Server un add-in che non può mancare tra i loro tools, sto parlando dell&#8217; SSMS Tools Pack. L&#8217; Add-in è valido per le versioni di SQL 2005 e 2008 e cosa più eccezionale è completamente free! Ecco la lista delle nuove funzionalità: SQL Snippets Window Connection Coloring Query [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2010/09/ssmsLogo2.jpg"><img class="aligncenter size-full wp-image-478" title="ssmsLogo" src="http://www.aleprex.it/wordpress/wp-content/uploads/2010/09/ssmsLogo2.jpg" alt="" width="354" height="122" /></a></p>
<p>Consiglio a tutti gli appassionati di SQL Server un add-in che non può mancare tra i loro tools, sto parlando dell&#8217; <a title="SSMS Tools Pack" href="http://www.ssmstoolspack.com/Download" target="_blank">SSMS Tools Pack</a>.</p>
<p>L&#8217; Add-in è valido per le versioni di SQL 2005 e 2008 e cosa più eccezionale è completamente free! <img src='http://www.aleprex.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-464"></span></p>
<p>Ecco la lista delle nuove funzionalità:</p>
<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2010/09/ssms002.jpg"><img class="alignright size-full wp-image-475" title="ssms002" src="http://www.aleprex.it/wordpress/wp-content/uploads/2010/09/ssms002.jpg" alt="" width="312" height="246" /></a></p>
<ul>
<li>SQL Snippets</li>
<li><strong>Window Connection Coloring</strong></li>
<li>Query Execution History and Current Window History</li>
<li>Format SQL</li>
<li>Search Table, View or Database Data</li>
<li>Run one script on multiple databases</li>
<li>Copy execution plan bitmaps to clipboard or file</li>
<li>Search Results in Grid Mode</li>
<li>Generate Insert statements from resultsets, tables or database</li>
<li><strong>Regions and Debug sections</strong></li>
<li>Running custom scripts from Object Explorer</li>
<li>CRUD stored procedure generation</li>
<li>New query template</li>
<li>General options</li>
</ul>
<p>Sul sito <a title="SSMS Toos Pack" href="http://www.ssmstoolspack.com/" target="_blank">ufficiale </a>ci sono ben 40  <a title="ssms features" href="http://www.ssmstoolspack.com/Features?f=0" target="_blank">screenshot </a>del prodotto, che ho trovato molto utili per capire al volo tutte le nuove caratteristiche.</p>
<p>Ringrazio tantissimo <a title="Davide Mauri" href="http://www.davidemauri.it/" target="_blank">Davide Mauri</a> per la segnalazione di questo imperdibile tool tramite il sito <a title="Ugiss - User Group Italia Sql Server" href="http://www.ugiss.org/Content/Article/SSMS-Tools-Pack.aspx" target="_blank">UGISS </a>ormai punto di riferimento di tutti i DBA e Sviluppatori SQL Server.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fssms-tools-pack-1-9.html&amp;title=SSMS%20Tools%20Pack%201.9" id="wpa2a_10"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/ssms-tools-pack-1-9.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL Tips : ANSI_NULLS</title>
		<link>http://www.aleprex.it/wordpress/sql-tips-ansi_nulls.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sql-tips-ansi_nulls</link>
		<comments>http://www.aleprex.it/wordpress/sql-tips-ansi_nulls.html#comments</comments>
		<pubDate>Wed, 14 Jul 2010 10:20:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=444</guid>
		<description><![CDATA[La seguente query : come sappiamo tutti ritorna la lista dei Color dalla tabella Product non considerando i valori che sono a NULL. ma se scriviamo la stessa query utilizzando l'operatore di confronto "diverso da" (&#60;&#62;) non otteniamo lo stesso risultato! Questo perchè di default Sql Server ha impostato il flag ANSI_NULLS su ON e [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2010/07/SQLTIPS.png"><img class="size-full wp-image-457 alignnone" style="margin: 3px;" title="SQLTIPS" src="http://www.aleprex.it/wordpress/wp-content/uploads/2010/07/SQLTIPS.png" alt="" width="170" height="150" /></a></p>
<p>La seguente query :</p>
<pre class="brush: sql; title: ; notranslate">

SELECT DISTINCT Color from Production.Product
WHERE Color IS NOT NULL;
</pre>
<p><span id="more-444"></span></pre>
<p>come sappiamo tutti ritorna la lista dei <strong>Color </strong>dalla tabella <strong>Product </strong>non considerando i valori che sono a <strong>NULL</strong>.</p>
<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2010/07/tips011.png"><img class="alignnone size-full wp-image-455" title="tips01" src="http://www.aleprex.it/wordpress/wp-content/uploads/2010/07/tips011.png" alt="" width="800" height="600" /></a></p>
<p>ma se scriviamo la stessa query utilizzando l'operatore di confronto<strong> "diverso da" (&lt;&gt;)</strong> non otteniamo lo stesso risultato!</p>
<pre class="brush: sql; title: ; notranslate">
SELECT DISTINCT Color from Production.Product
WHERE Color &lt;&gt; NULL;
</pre>
<p>Questo perchè di default Sql Server ha impostato il flag <strong>ANSI_NULLS</strong> su <strong>ON </strong>e quindi non è possibile  equiparare i valori a <strong>NULL </strong>e darà come risultato "<strong><em>unknown</em></strong>”.</p>
<p>Per poter far si che l'operatore <strong>"&lt;&gt;"</strong> venga considerato bisogna settare il flag<strong> ANSI_NULLS OFF</strong> in questo modo:</p>
<pre class="brush: sql; title: ; notranslate">

USE AdventureWorks

GO

SET ANSI_NULLS OFF;

SELECT DISTINCT Color from Production.Product
WHERE Color &lt;&gt; NULL;
</pre>
<p><span style="font-size: xx-small;"><em>riferimento : <a href="http://www.microsoft.com/learning/en/us/Book.aspx?ID=13159&amp;locale=en-us" target="_blank">MCTS_70-433 Training Kit MS SQL Server 2008 Database Development</a></em></span></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fsql-tips-ansi_nulls.html&amp;title=SQL%20Tips%20%3A%20ANSI_NULLS" id="wpa2a_12"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/sql-tips-ansi_nulls.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google censura l&#8217;uso del Bluetooth nel Market di Android!</title>
		<link>http://www.aleprex.it/wordpress/google-censura-luso-del-bluetooth-nel-market-di-android.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-censura-luso-del-bluetooth-nel-market-di-android</link>
		<comments>http://www.aleprex.it/wordpress/google-censura-luso-del-bluetooth-nel-market-di-android.html#comments</comments>
		<pubDate>Fri, 09 Jul 2010 10:23:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Tecnologie]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=333</guid>
		<description><![CDATA[Voglio riportare un fatto che è da tempo che seguo con molto interesse e che ancora oggi  sto cercando di trovare delle spiegazioni plausibili a tutto ciò. Di seguito trovate la traduzione in italiano del post originale che potete trovare invece qui Un giorno di Giugno 2010, la nostra applicazione per Android Bluetooth file transfer [...]]]></description>
			<content:encoded><![CDATA[<h4 style="font-family: Verdana,Arial,Helvetica,sans-serif;"><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2010/07/censured.jpg"><img class="alignleft size-full wp-image-437" style="margin: 10px 20px; border: 0pt none;" title="censured" src="http://www.aleprex.it/wordpress/wp-content/uploads/2010/07/censured.jpg" alt="" width="254" height="256" /></a>Voglio riportare un fatto che è da tempo che seguo con molto interesse e che ancora oggi  sto cercando di trovare delle spiegazioni plausibili a tutto ciò.</h4>
<h4 style="font-family: Verdana,Arial,Helvetica,sans-serif;">Di seguito trovate la traduzione in italiano del post originale che potete trovare invece <a title="Google is censoring Bluetooth on Android: the proof!" href="http://www.medieval.it/google-is-censoring-bluetooth-on-android-the-proof/menu-id-66.html" target="_blank">qui</a></h4>
<hr />Un giorno di Giugno 2010, la nostra applicazione per Android <a title="Bluetooth File Transfer (Android)" href="http://www.medieval.it/blueftp-android/menu-id-68.html">Bluetooth file transfer</a> è stata rimossa manualmente da Google dall&#8217;Android Market senza nessuna ragione. In principio abbiamo pensato che fosse uno dei soliti e famosi bug di Android, dovuto all&#8217;estrema fragilità dell&#8217;intera piattaforma, e così eravamo abbastanza ottimisti. Ma dopo qualche giorno, la nostra applicazione non era ancora visibile sul Market e con &#8220;alcune ispezione&#8221; abbiamo scoperto che era stata rimossa/nascosta a tutti i cellulari con il firmaware 1.5 e 1.6: ovvero il 50% di tutti i telefoni Android!!!(fonte: <a title="Platform versions..." href="http://developer.android.com/resources/dashboard/platform-versions.html" target="_blank">Android website</a>)</p>
<p><span id="more-333"></span></p>
<p>Abbiamo provato a contattare Google stessa, al fine di ottenere una spiegazione, ma il fatto divertente è che per il  back-office dello sviluppatore, non esiste un modo per contattare Google direttamente (per esempio usando un modulo di inserimento dati o un indirizzo e-mail). Ok, proviamo allora con il forum di aiuto dell&#8217;<a title="Lots of fun..." href="http://www.google.com/support/forum/p/Android+Market?hl=en" target="_blank">Android Market</a>: Oh mio Dio, il forum di supporto più divertente del pianeta,  dove gli utenti finali e gli sviluppatori sono fusi insieme, e le risposte ufficiali date dagli impiegati di Google dovrebbero essere studiate dagli artisti di cabaret.</p>
<p>Pertanto, per due settimane la nostra applicazione non era visibile su dispositivi con <strong>Android 1.5 (Cupcake) e 1.6 (Donut)</strong>, che ricevendo decine di e-mail da parte di utenti ogni giorno, ma tentativo dopo tentativo abbiamo trovato un periodo di tempo in cui Google ( temporaneamente) aveva disattivato lo stupido limite e quindi il nostro software è stato rilasciato e pubblicato su tutti i dispositivi: swish meno male!</p>
<p>Ieri , 3 Luglio 2010, abbiamo rilasciato una nuova versione del <a title="Bluetooth File Transfer (Android)" href="http://www.medieval.it/blueftp-android/menu-id-68.html">Bluetooth File Transfer (Android)</a> v.3.10: ma non compariva sui device con <strong>Android 1.5 (Cupcake) e 1.6 (Donut)</strong>. Ma porca put?#!, questa volta dobbiamo investigare più a fondo! Eravamo quasi sicuri che Google stava censurando tutte le applicazioni Bluetooth per attaccare specificatamente  il nostro software , 3 ° posto nella categoria &#8220;Comunicazione&#8221; per 10 mesi, ma dovevamo trovare una prova. Grazie alla nostra esperienza passata di &#8220;2 settimane di boicottaggio&#8221;, attraverso la creazione e la pubblicazione di applicazioni di trova-bug, abbiamo creato 2 semplici ma efficaci applicazioni di test chiamate <strong>Test YES</strong> e <strong>Test NO</strong>, entrambe compilate per l&#8217;SDK level 4 (Donut),  al fine di smascherare il piano di Google. Ecco un breve riassunto di questi programmi:</p>
<ul>
<li><strong>Test YES</strong>: il manifest contiene tutte le  <a title="Uses permission explanation..." href="http://developer.android.com/guide/topics/security/security.html#permissions" target="_blank">uses-permission</a> disponibili ,per un totale di 102 permissions.</li>
<li><strong>Test NO</strong>:   il manifest contiene tutte le <a title="Uses permission explanation..." href="http://developer.android.com/guide/topics/security/security.html#permissions" target="_blank">uses-permission</a> eccetto BLUETOOTH e BLUETOOTH ADMIN, per un totale di 100 permissions.</li>
</ul>
<p>Beh, che ci crediate o no, questo è il risultato prevedibile per l&#8217;Android Market, dopo la pubblicazione:</p>
<ul>
<li><strong>Test YES</strong>: l&#8217;applicazione non è visibile su Android 1.5 (Cupcake) e 1.6 (Donut);</li>
<li><strong>Test NO</strong>:  l&#8217;applicazione è visibile da tutti.</li>
</ul>
<p><strong>Ergo, qualsiasi applicazione con  BLUETOOTH o BLUETOOTH_ADMIN permission nel manifest, non appare nell&#8217; Android Market!!!</strong></p>
<p>Se avete ancora dubbi circa la censura applicata da Google sulle applicazioni Bluetooth, prima di tutto si possono scaricare queste <a title="Source code of Test YES and Test NO samples..." href="http://www.medieval.it/sw/Source_ANDROID.zip">2</a> applicazioni di  test, apportare alcune modifiche, compilare e pubblicarle da soli, quindi osservare i risultati sul market Android. Inoltre, è possibile cercare le applicazioni &#8221;Test SI&#8221; e &#8220;Test NO&#8221; , rilasciate sotto la nostra ragione sociale &#8220;medieval software&#8221;, e si noterà che Test NO è visibile ovunque e TEST YES non è visibile sui vecchi smartphone con Android 1.5/1.6.</p>
<p>Ecco alcuni screenshot, giusto per evitare un probabile messa a tacere da Google:</p>

<div class="ngg-galleryoverview" id="ngg-gallery-1-333">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://www.aleprex.it/wordpress/google-censura-luso-del-bluetooth-nel-market-di-android.html?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://www.aleprex.it/wordpress/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=1&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-1" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/a.png" title=" " class="shutterset_set_1" >
								<img title="a" alt="a" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_a.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-2" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/b.png" title=" " class="shutterset_set_1" >
								<img title="b" alt="b" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_b.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/c.png" title=" " class="shutterset_set_1" >
								<img title="c" alt="c" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_c.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/d.png" title=" " class="shutterset_set_1" >
								<img title="d" alt="d" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_d.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-5" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/e.png" title=" " class="shutterset_set_1" >
								<img title="e" alt="e" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_e.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-6" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/f.png" title=" " class="shutterset_set_1" >
								<img title="f" alt="f" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_f.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-7" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/g.png" title=" " class="shutterset_set_1" >
								<img title="g" alt="g" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_g.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-8" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/h.png" title=" " class="shutterset_set_1" >
								<img title="h" alt="h" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_h.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-9" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/i.png" title=" " class="shutterset_set_1" >
								<img title="i" alt="i" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_i.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-10" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/l.png" title=" " class="shutterset_set_1" >
								<img title="l" alt="l" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_l.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-11" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/m.png" title=" " class="shutterset_set_1" >
								<img title="m" alt="m" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_m.png" width="89" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-12" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/n.png" title=" " class="shutterset_set_1" >
								<img title="n" alt="n" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_n.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-13" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/o.png" title=" " class="shutterset_set_1" >
								<img title="o" alt="o" src="http://www.aleprex.it/wordpress/wp-content/gallery/articolo-censura-bluetooth/thumbs/thumbs_o.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<div>
<p>Questo post è lungo abbastanza, ma molti di voi probabilmente già avranno capito le conseguenze commerciali dell&#8217;applicazione di questo tipo di censura. Nota, non abbiamo ancora ricevuto alcuna comunicazione ufficiale da Google, né scuse: stiamo perdendo punti in classifica, download e clienti ogni giorno e noi non sappiamo perché! Abbiamo un sacco di domande, per esempio: &#8220;Perché solo le autorizzazioni per il Bluetooth sono state censurate?&#8221;, ma nessuno potrà realmente risponderci&#8230;</p>
</div>
<p>Ci auguriamo che molti sviluppatori là fuori sono ora consapevoli di ciò che sta accadendo sul mercato Android. Ora siamo pronti a condividere pubblicamente la nostra esperienza estremamente negativa di oltre 1 anno di sviluppo su Android, e siamo quasi certi che aziende come Apple o Microsoft sono felici di sentire la nostra storia e scrivere una &#8220;storia di insuccesso&#8221;. Google ha calpestato i nostri diritti senza una ragione, al momento (3 luglio 2010), la nostra applicazione è l&#8217;unico software che fa uso di Bluetooth buttato fuori dal mercato Android. Forse è una forma di razzismo nei confronti delle persone italiane? Non vi piace il  medioevo? Chi lo sa?</p>
<p>Vogliamo ringraziare tutti gli utenti e traduttori che ci hanno sostenuto su Android nel corso di quest&#8217;anno: siete stati il carburante del nostro motore!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fgoogle-censura-luso-del-bluetooth-nel-market-di-android.html&amp;title=Google%20censura%20l%26%238217%3Buso%20del%20Bluetooth%20nel%20Market%20di%20Android%21" id="wpa2a_14"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/google-censura-luso-del-bluetooth-nel-market-di-android.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL : Funzione per calcolare l&#8217;età</title>
		<link>http://www.aleprex.it/wordpress/sql-funzione-per-calcolare-leta-3.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sql-funzione-per-calcolare-leta-3</link>
		<comments>http://www.aleprex.it/wordpress/sql-funzione-per-calcolare-leta-3.html#comments</comments>
		<pubDate>Thu, 08 Jul 2010 10:56:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=361</guid>
		<description><![CDATA[Calcola l&#8217;età fornendo una data e confrontandola con la data attuale: Per eseguirla : Una variante potrebbe essere sapere che età si aveva in un anno specifico, quindi passando due parametri anzichè uno: E per utilizzarla semplicemente :]]></description>
			<content:encoded><![CDATA[<p>Calcola l&#8217;età fornendo una data e confrontandola con la data attuale:</p>
<pre class="brush: sql; title: ; notranslate">
CREATE FUNCTION [dbo].[Age] (@birthday DATETIME)
RETURNS INT
AS
  BEGIN
      DECLARE @age INT
      DECLARE @d AS DATETIME 

      SET @d=GETDATE() 

      SELECT @age = DATEDIFF(yy, @birthday, @d) -
      --Se non ha compiuto gli anni nell'ultimo anno in corso sottrae 1 anno.
      ( CASE
			WHEN ( DATEPART(m,@birthday ) &gt; DATEPART(m, @d) )
              OR ( DATEPART(m, @birthday ) = DATEPART(m, @d) AND DATEPART(d, @birthday) &gt; DATEPART(d, @d) )
			THEN 1 

            ELSE 0
        END
       ) 

      RETURN( @age )
  END 
</pre>
<p>Per eseguirla :</p>
<pre class="brush: sql; title: ; notranslate">

SELECT DBO.AGE('05/02/1977')
</pre>
<p>Una variante potrebbe essere sapere che età si aveva in un anno specifico, quindi passando due parametri anzichè uno:</p>
<pre class="brush: sql; title: ; notranslate">
CREATE FUNCTION [dbo].[AgeAt] (@birthday DATETIME, @d DATETIME)
RETURNS INT
AS
  BEGIN
      DECLARE @age INT
      SELECT @age = DATEDIFF(yy, @birthday, @d) -
      --Se non ha compiuto gli anni nell'ultimo anno in corso sottrae 1 anno.
      ( CASE
			WHEN ( DATEPART(m,@birthday ) &gt; DATEPART(m, @d) )
              OR ( DATEPART(m, @birthday ) = DATEPART(m, @d) AND DATEPART(d, @birthday) &gt; DATEPART(d, @d) )
			THEN 1 

            ELSE 0
        END
       ) 

      RETURN( @age )
  END
</pre>
<p>E per utilizzarla semplicemente :</p>
<pre class="brush: sql; title: ; notranslate">
select dbo.AgeAt ('05/02/1977', '01/02/1998') -- risultato 21
</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fsql-funzione-per-calcolare-leta-3.html&amp;title=SQL%20%3A%20Funzione%20per%20calcolare%20l%26%238217%3Bet%C3%A0" id="wpa2a_16"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/sql-funzione-per-calcolare-leta-3.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cisco Cius &#8211; L&#8217;anti-iPad ha il cuore Android</title>
		<link>http://www.aleprex.it/wordpress/cisco-cius-lanti-ipad-ha-il-cuore-android.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cisco-cius-lanti-ipad-ha-il-cuore-android</link>
		<comments>http://www.aleprex.it/wordpress/cisco-cius-lanti-ipad-ha-il-cuore-android.html#comments</comments>
		<pubDate>Wed, 30 Jun 2010 18:11:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Senza categoria]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=323</guid>
		<description><![CDATA[Cominciano ad essere ormai decine le aziende che vogliono essere presenti sul mercato dei tablet-pc. Ora fa il suo ingresso anche un nome altisonante come quello di Cisco , che entro i primi mesi del 2011 presenterà il suo tablet di nome CIUS (see us) ovvero vediamoci! Equipaggiato con il sistema operativo Android, Cisco vuole [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aleprex.it/wordpress/wp-content/uploads/2010/06/ipad-2up-top1.jpg"><img class="alignleft size-full wp-image-327" title="ipad-2up-top" src="http://www.aleprex.it/wordpress/wp-content/uploads/2010/06/ipad-2up-top1.jpg" alt="" width="260" height="190" /></a>Cominciano ad essere ormai decine le aziende che vogliono essere presenti sul mercato dei tablet-pc. Ora fa il suo ingresso anche un nome altisonante come quello di <strong><a title="Cisco System" href="http://www.cisco.com/web/IT/index.html" target="_blank">Cisco </a></strong>, che entro i primi mesi del 2011 presenterà il suo tablet di nome CIUS (see us) ovvero vediamoci!</p>
<p>Equipaggiato con il sistema operativo <a title="Android" href="http://www.android.com/" target="_blank">Android</a>, Cisco vuole essere presente e cercare di prendersi la sua fetta di mercato.</p>
<p>Staremo a vedere cosa uscirà fuori.</p>
<p><a href="http://www.android.com/" target="_blank">(fonte notizia)</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fcisco-cius-lanti-ipad-ha-il-cuore-android.html&amp;title=Cisco%20Cius%20%26%238211%3B%20L%26%238217%3Banti-iPad%20ha%20il%20cuore%20Android" id="wpa2a_18"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/cisco-cius-lanti-ipad-ha-il-cuore-android.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which language?</title>
		<link>http://www.aleprex.it/wordpress/which-language.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=which-language</link>
		<comments>http://www.aleprex.it/wordpress/which-language.html#comments</comments>
		<pubDate>Fri, 07 May 2010 15:22:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Develop]]></category>

		<guid isPermaLink="false">http://www.aleprex.it/wordpress/?p=310</guid>
		<description><![CDATA[Found this on a forum. In response to the question “Which programming language should I learn first?” &#8211; one user responds:﻿ Depends. To program in an expressive and powerful language: Python To get a website up quickly: PHP To mingle with programmers who call themselves “rockstars”: Ruby. To really learn to program: C. To achieve enlightenment: Scheme. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Found this on a forum. In response to the question “Which programming  language should I learn first?” &#8211; one user responds:﻿</strong></p>
<p style="padding-left: 30px;">Depends.</p>
<p style="padding-left: 30px;">To program in an expressive and powerful language:  Python<br />
To get a website up quickly: PHP<br />
To  mingle with programmers who call themselves “rockstars”: Ruby.<br />
To  really learn to program: C.<br />
To achieve enlightenment: Scheme.<br />
To  feel depressed: SQL<br />
To drop a chromosome: Microsoft Visual Basic<br />
To  get a guaranteed, mediocre, but well paying job writing financial  applications in a cubicle under fluorescent lights: Java.<br />
To do the  same thing with certifications and letters after your name: C#<br />
To  achieve a magical sense of childlike wonder that you have a hard time  differentiating from megalomania: Objective C</p>
<p style="padding-left: 30px;">I could go on… but  I’m not feeling hateful enough today.</p>
<p style="padding-left: 30px;"><a href="http://iamgabeaudick.tumblr.com/post/576987756/which-language" target="_blank"><em>&#8220;reblogged from here&#8221;</em></a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aleprex.it%2Fwordpress%2Fwhich-language.html&amp;title=Which%20language%3F" id="wpa2a_20"><img src="http://www.aleprex.it/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aleprex.it/wordpress/which-language.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

