<?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>PortalSQL</title>
	<atom:link href="http://portalsql.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://portalsql.com</link>
	<description>Compartiendo conocimiento SQL</description>
	<lastBuildDate>Sun, 18 Jul 2010 18:53:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Viendo productos sin venta en los último X meses con MDX</title>
		<link>http://portalsql.com/index.php/2010/07/viendo-productos-sin-venta-en-los-ultimo-x-meses-con-mdx/</link>
		<comments>http://portalsql.com/index.php/2010/07/viendo-productos-sin-venta-en-los-ultimo-x-meses-con-mdx/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 18:53:19 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Analisys Services]]></category>
		<category><![CDATA[MDX]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=280</guid>
		<description><![CDATA[Haca unos dias, un amigo, y alumno de un curso de MDX que impartí lanzaba esa pregunta en los post, ¿como saber los artículos que no han tenido venta en los últimos tres meses. Para eso hace falta saber que dia es hoy, aunque en realidad, me parece que es mejor olvidarse de que dia [...]]]></description>
			<content:encoded><![CDATA[<p>Haca unos dias, un amigo, y alumno de un curso de MDX que impartí lanzaba esa pregunta en los post, ¿como saber los artículos que no han tenido venta en los últimos tres meses. Para eso hace falta saber que dia es hoy, aunque en realidad, me parece que es mejor olvidarse de que dia es hoy y hacerlo genérico. Vamos a ver como podriamos hacer eso.</p>
<p>Bueno, vamos a ir por partes.. lo primero que vamos a hacer es ver como calcular el día de hoy.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code9'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2809"><td class="code" id="p280code9"><pre class="x-sql" style="font-family:monospace;">with member hoy
as
 now()
select hoy on 0
from [Adventure Works]</pre></td></tr></table></div>

<p>despues vamos a ver como sacar el conjunto de articulos con ventas en un mes.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code10'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28010"><td class="code" id="p280code10"><pre class="x-sql" style="font-family:monospace;">select  exists([Product].[Product].product*[Date].[Calendar].[Month].members,,
		  &quot;Internet Sales&quot;)
  on 1,
        {Measures.[Internet Sales Amount]} on 0
from  [Adventure Works];</pre></td></tr></table></div>

<p>el conjunto que forman los meses y  los productos que han tenido ventas es lo que nos devuelve la clasula de arriba.</p>
<p>Ahora vamos a calcular los que no han tenido ventas en absoluto, para ello simplemente hacemos una resta de conjuntos, es decir, todos los productos menos los que han tenido ventas</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code11'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28011"><td class="code" id="p280code11"><pre class="x-sql" style="font-family:monospace;">select  [Product].[Product].product*[Date].[Calendar].[Month].members-
exists([Product].[Product].product*[Date].[Calendar].[Month].members,,
		  &quot;Internet Sales&quot;)
  on 1,
        {Measures.[Internet Sales Amount]} on 0
from  [Adventure Works];</pre></td></tr></table></div>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code12'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28012"><td class="code" id="p280code12"><pre class="x-sql" style="font-family:monospace;"> </pre></td></tr></table></div>

<p>De esta forma tenemos los articulos sin ventas en un mes concreto, porque son aquellos que no tienen datos en el grupo de medidas Internet Sales, para el mes en cuestion. El problema viene porque ahora necesitamos saber los que no tienen ventas en los últimos tres meses. Para poder usar Exist, necesitariamos tener un grupo especial que tuviese en el mes actual las ventas de los últimos tres meses para cada producto y comprobar su existencia. El resultado sería rápido, pero parece que quedaría bastante engorroso de hacer, además implica cambios en el ETL y eso siempre quiere decir, mucho tiempo, muchas pruebas. Así pues dejamos esta via solamente para el caso de que el rendimiento no se corresponda con el necesario. En otro caso pasamos al plan B y usamos el método filter.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code13'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28013"><td class="code" id="p280code13"><pre class="x-sql" style="font-family:monospace;">	select
	filter ( [Product].[Product].product*
				[Date].[Calendar].[Month].members  ,
				 sum(([Date].[Calendar].currentmember.lag(3):[Date].[Calendar].currentmember),Measures.[Internet Sales Amount])&amp;gt;0) on 1,
				Measures.[Internet Sales Amount] on 0
	from  [Adventure Works];</pre></td></tr></table></div>

<p>si nos fijamos he usado la cláusula Sum para el filter, esto penalizará rendimiento, sin duda,.. considerad hacer esta medida física aun si es en el mismo grupo de medidas para mejorar el rendimiento. Aún este ejemplo nos está mostrando los que si tienen ventas en los últimos 3 meses.. veamos los que no&#8230; creo que se vé facil, si has llegado hasta aquí <img src='http://portalsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code14'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28014"><td class="code" id="p280code14"><pre class="x-sql" style="font-family:monospace;">	select [Product].[Product].product*[Date].[Calendar].[Month].members -
	filter ( [Product].[Product].product*
				[Date].[Calendar].[Month].members  ,
				 sum(([Date].[Calendar].currentmember.lag(3):[Date].[Calendar].currentmember),Measures.[Internet Sales Amount])&amp;gt;0) on 1,
				Measures.[Internet Sales Amount] on 0
	from  [Adventure Works]</pre></td></tr></table></div>

<p>Esta consulta tardó casi 15 segundos (una barvaridad) en mi portatil contra adventure works, si la personalizamos a un único mes.. tardará mucho menos, claro.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code15'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28015"><td class="code" id="p280code15"><pre class="x-sql" style="font-family:monospace;">	select [Product].[Product].product-
	filter ( [Product].[Product].product
				,
				 sum(([Date].[Calendar].currentmember.lag(3):[Date].[Calendar].currentmember),Measures.[Internet Sales Amount])&amp;gt;0) on 1,
				Measures.[Internet Sales Amount] on 0
	from  [Adventure Works]
	 where
	[Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[7]</pre></td></tr></table></div>

<p>y si ahora lo enlazamos con el now que veiamos al principio.. (ojo , no funcionará a menos que le pongas el reloj al server a un valor que de un miembro válido) Además ojo con usar STRTOMEMBER, que puede dar también problemas de rendimiento, no en este ejemplo.. pero si en general</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p280code16'); return false;">View Code</a> X-SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p28016"><td class="code" id="p280code16"><pre class="x-sql" style="font-family:monospace;">with member ahora as
    &quot;[Date].[Calendar].[Month].&amp;amp;[&quot; +cstr(year(now()))+ &quot;]&amp;amp;[&quot;+cstr(month(now()))+&quot;]&quot;
	select [Product].[Product].product-
	filter ( [Product].[Product].product
				,
				 sum(([Date].[Calendar].currentmember.lag(3):[Date].[Calendar].currentmember),Measures.[Internet Sales Amount])&amp;gt;0) on 1,
				Measures.[Internet Sales Amount] on 0
	from  [Adventure Works]
	 where
	strtomember(ahora)</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/07/viendo-productos-sin-venta-en-los-ultimo-x-meses-con-mdx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Training Kit R2 listo en la web</title>
		<link>http://portalsql.com/index.php/2010/06/training-kit-r2-listo-en-la-web/</link>
		<comments>http://portalsql.com/index.php/2010/06/training-kit-r2-listo-en-la-web/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 16:52:53 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Analisys Services]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Relacional]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=277</guid>
		<description><![CDATA[Algunos de mis compañeros en Solid han trabajado duro en esto, pero ya está listo para descarga en: http://go.microsoft.com/?linkid=9710868
esto lo dejo en inglés porque el video estará en inglés  
Or if you just want to see what’s in it, you can preview training kit content online in the SQL Server 2008 R2 Learning Center [...]]]></description>
			<content:encoded><![CDATA[<p>Algunos de mis compañeros en Solid han trabajado duro en esto, pero ya está listo para descarga en: <a href="http://go.microsoft.com/?linkid=9710868">http://go.microsoft.com/?linkid=9710868</a></p>
<p>esto lo dejo en inglés porque el video estará en inglés <img src='http://portalsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Or if you just want to see what’s in it, you can preview training kit content online in the SQL Server 2008 R2 Learning Center on Channel 9 at <a href="http://channel9.msdn.com/learn/courses/SQL2008R2TrainingKit">http://channel9.msdn.com/learn/courses/SQL2008R2TrainingKit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/06/training-kit-r2-listo-en-la-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mi charla ayer en SecondNug, está lista.</title>
		<link>http://portalsql.com/index.php/2010/06/mi-charla-ayer-en-secondnug-esta-lista/</link>
		<comments>http://portalsql.com/index.php/2010/06/mi-charla-ayer-en-secondnug-esta-lista/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 09:19:34 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Analisys Services]]></category>
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=275</guid>
		<description><![CDATA[Te la puedes descargar de la web del grupo  y si lo que quieres es únicamente verla,  puedes ir a esta otra dirección.
Ayer al final la demo la truqué un poquito, seguramente muchos no lo notarían si no lo dijera.. pero no se trata de dejar medias verdades. Durante el día de hoy o mañana [...]]]></description>
			<content:encoded><![CDATA[<p>Te la puedes descargar de <a href="http://www.secondnug.com" target="_blank">la web del grupo</a>  y si lo que quieres es únicamente verla,  puedes ir a esta otra <a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=es-ES&amp;EventID=1032452549&amp;CountryCode=ES" target="_blank">dirección</a>.</p>
<p>Ayer al final la demo la truqué un poquito, seguramente muchos no lo notarían si no lo dijera.. pero no se trata de dejar medias verdades. Durante el día de hoy o mañana intentaré grabar un video sobre como configurar el proactive Caching y lo mostraré en una demo en video <img src='http://portalsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/06/mi-charla-ayer-en-secondnug-esta-lista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lanzamiento SQL Server 2008 R2 en Madrid y Barcelona</title>
		<link>http://portalsql.com/index.php/2010/05/lanzamiento-sql-server-2008-r2-en-madrid-y-barcelona/</link>
		<comments>http://portalsql.com/index.php/2010/05/lanzamiento-sql-server-2008-r2-en-madrid-y-barcelona/#comments</comments>
		<pubDate>Wed, 19 May 2010 11:09:25 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=270</guid>
		<description><![CDATA[


 
Publicidad e información






Le invitamos al lanzamiento de Microsoft SQL Server 2008 R2. Venga y descubra una Nueva Dimensión en la gestión de datos y la inteligencia de Negocio.


¡Regístrese ahora!






Barcelona:10 de junio 2010
Hotel Barceló Sants
Pza. de los Paisos Catalans, s/n
08014 &#8211; Barcelona
Madrid:14 de junio 2010
Hotel Meliá Avenida de América
c/ Juan Ignacio Luca de Tena, 36
28027 &#8211; [...]]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="0" cellpadding="0" width="600">
<tbody>
<tr>
<td width="409"> </td>
<td width="191"><strong>Publicidad e información</strong></td>
</tr>
</tbody>
</table>
<table style="height: 361px;" border="0" width="650">
<tbody>
<tr>
<td height="58" valign="top">Le invitamos al lanzamiento de Microsoft SQL Server 2008 R2. Venga y descubra una Nueva Dimensión en la gestión de datos y la inteligencia de Negocio.</td>
</tr>
<tr>
<td align="center" valign="middle">¡Regístrese ahora!</td>
</tr>
<tr>
<td height="104" align="center">
<table>
<tbody>
<tr>
<td><strong><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032452696&amp;Culture=es-ES">Barcelona:</a></strong>10 de junio 2010</p>
<p>Hotel Barceló Sants</p>
<p>Pza. de los Paisos Catalans, s/n</p>
<p>08014 &#8211; Barcelona</td>
<td><strong><a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032452695&amp;Culture=es-ES">Madrid:</a></strong>14 de junio 2010</p>
<p>Hotel Meliá Avenida de América</p>
<p>c/ Juan Ignacio Luca de Tena, 36</p>
<p>28027 &#8211; Madrid</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="36" valign="bottom"><strong>Agenda:</strong></td>
</tr>
<tr>
<td>
<table>
<tbody>
<tr>
<td>09:00 &#8211; 09:30</td>
<td>Registro</td>
</tr>
<tr>
<td>09:30 &#8211; 10:00</td>
<td>Plataforma de Aplicaciones de Microsoft con SQL Server 2008 R2</td>
</tr>
<tr>
<td>10:00 &#8211; 10:40</td>
<td>Novedades tecnológicas para potenciar la inteligencia de Negocio: PowerPivot, Report Builder y Master Data Management</td>
</tr>
<tr>
<td>10:40 &#8211; 11:00</td>
<td>Nuevos servidores HP ProLiant G7: La mejor plataforma para SQL Server 2008 R2.<br />
Los nuevos procesadores Intel Xeon del 2010: Rendimiento e Inteligencia.</td>
</tr>
<tr>
<td>11:00 &#8211; 11:20</td>
<td>Café</td>
</tr>
<tr>
<td>11:20 &#8211; 11:30</td>
<td>Unisys: Escalabilidad en entornos virtuales de Misión Crítica. El presentador: Alejandro Santacana (Engagement Manager Soluciones Microsoft &#8211; UNISYS)</td>
</tr>
<tr>
<td>11:30 &#8211; 12:10</td>
<td>Mejoras para administradores de bases de datos: Application y MultiServer Magament, SQL Datacenter, Hyper-v Live Migration, Compresion y Parallel Data Warehouse</td>
</tr>
<tr>
<td>12:10 &#8211; 12:40</td>
<td>Soluciones para Optimizar SQL Server con NetApp, SafeNet y EMC</td>
</tr>
<tr>
<td>12:40 &#8211; 13:20</td>
<td>SQL Azure: Alta disponibilidad y flexibilidad de los datos en la nube</td>
</tr>
<tr>
<td>13:20 &#8211; 13:30</td>
<td>Conclusiones y Cierre</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td colspan="2">Y si le gusta lo que ve en el lanzamiento, ¿Por qué no quedarse toda la semana? Tras el evento de Madrid, se celebrará el Solid Quality Summit 2010: Mas de 50 sesiones tecnicas en castellano, enfocadas en SQL Server y SharePoint. Además, si 1 o más personas de su empresa asisten al lanzamiento, tendrán un descuento del 30%. <a href="http://www.microsoft.com/spain/sql/eventos/lanzamientos2008r2/index.aspx">Infórmese de mas detalles aquí</a> o contacte al teléfono 800 300 800 o al email <a href="mailto:ventasib@solidq.com">ventasib@solidq.com</a><br />
Para más información y registro: <a href="http://summit.solidq.com/madrid/2010/">http://summit.solidq.com/madrid/2010/</a></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="591">
<tbody>
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><a href="http://click.email.microsoftemail.com/?qs=43c6b4e8fa892000315239e7bd79e17b5162e475fb4ca25527f4fd6df91ad415"></a></td>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td> </td>
</tr>
</tbody>
</table>
<p> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><a href="mailto:ventasib@solidq.com"></a></td>
</tr>
<tr>
<td> </td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/05/lanzamiento-sql-server-2008-r2-en-madrid-y-barcelona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charla en Second Nug el 1 de Junio</title>
		<link>http://portalsql.com/index.php/2010/05/charla-en-second-nug-el-1-de-junio/</link>
		<comments>http://portalsql.com/index.php/2010/05/charla-en-second-nug-el-1-de-junio/#comments</comments>
		<pubDate>Wed, 19 May 2010 09:30:01 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Analisys Services]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=268</guid>
		<description><![CDATA[El proximo 1 de Junio estaré dando una charla en directo sobre Analisys Services. La charla es On-Line en Second-Nug, uno de los grupos de usuarios on-line más activos y con mayor presencia. Mis compañeros de Solid Quality, Eladio y Salva ya han estado hablando de TSQL y SSIS y ahora me toca a  mi [...]]]></description>
			<content:encoded><![CDATA[<p>El proximo 1 de Junio estaré dando una charla en directo sobre Analisys Services. La charla es On-Line en Second-Nug, uno de los grupos de usuarios on-line más activos y con mayor presencia. Mis compañeros de Solid Quality, Eladio y Salva ya han estado hablando de TSQL y SSIS y ahora me toca a  mi hablar de Analisys Services y de las diferencias entre el modelo tradicional y otro tipo de aproximaciones a proyectos multidimensionales.</p>
<p>Espero que os resulte de interes</p>
<p><a href="http://www.secondnug.com/EventosDesarrollo/tabid/57/Default.aspx">http://www.secondnug.com/EventosDesarrollo/tabid/57/Default.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/05/charla-en-second-nug-el-1-de-junio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buscador sencillo en c#</title>
		<link>http://portalsql.com/index.php/2010/04/buscador-sencillo-en-c/</link>
		<comments>http://portalsql.com/index.php/2010/04/buscador-sencillo-en-c/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 10:44:12 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Relacional]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=263</guid>
		<description><![CDATA[En un post del grupo de noticias un compañero tenía una duda sobre como crear buscadores, de forma que la consulta SQL no fuese muy compleja de tratar y escribir, a la vez que no tenga problemas de inyección de código y que cumpla con sus requisitos. Yo me he permitido escribir el código todo [...]]]></description>
			<content:encoded><![CDATA[<p>En un post del grupo de noticias un compañero tenía una duda sobre como crear buscadores, de forma que la consulta SQL no fuese muy compleja de tratar y escribir, a la vez que no tenga problemas de inyección de código y que cumpla con sus requisitos. Yo me he permitido escribir el código todo en C#, aunque me hubiese gustado escribir un procedimiento almacenado, creo que de forma didactica esto va a quedar más claro.</p>
<p><a href="http://www.portalsql.com/wp-content/uploads/2010/04/demo%20buscador.zip" target="_self">Desde aquí puedes bajarte la aplicacion en zip.</a></p>
<p>Espero que disfruteis el  post.</p>
<pre lang="c#">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;

namespace Demo_Buscador
{
    public partial class Form1 : Form
    {
        SqlConnection con = new SqlConnection( ConfigurationManager.ConnectionStrings["AdventureWorks2008"].ConnectionString.ToString() ) ;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            DataTable dt=new DataTable();
            SqlDataAdapter da = new SqlDataAdapter("select DISTINCT PERSON.PersonType From Person.Person",con);
            da.Fill(dt);
            TipoPersona.DataSource = dt;
            TipoPersona.DisplayMember = "PersonType";

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string SQL = "SELECT * FROM Person.Person  ";
            string where="";
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = new SqlCommand();
            da.SelectCommand.Connection = con;
            if (TipoPersona.Text != null &amp;&amp; TipoPersona.Text!="")
            {
                TipoPersona.Text += "   ";
                da.SelectCommand.Parameters.Add("@PersonType",SqlDbType.NChar,2).Value=TipoPersona.Text.Substring(0,2);

                where += " PersonType=@PersonType AND ";

            }
            if (Nombre.Text != "")
            {
                da.SelectCommand.Parameters.Add("@name", SqlDbType.NVarChar, 50).Value = Nombre.Text;
                where += " LastName like @name  AND ";

            }

            if (where != "")
                SQL += " WHERE " + where.Substring(0, where.Length - 4);

            da.SelectCommand.CommandText = SQL;

            DataTable DT=new DataTable();
            da.Fill(DT);

            dataGridView1.DataSource = DT;

        }
    }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/04/buscador-sencillo-en-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Herramienta para explotación de grandes volúmenes de datos</title>
		<link>http://portalsql.com/index.php/2010/04/herramienta-para-explotacion-de-grandes-volumenes-de-datos/</link>
		<comments>http://portalsql.com/index.php/2010/04/herramienta-para-explotacion-de-grandes-volumenes-de-datos/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 07:45:31 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=258</guid>
		<description><![CDATA[Microsoft Live Labs Pivots es una herramienta para la explotación masiva de datos, que de momento puedes descargar de aquí.
En la página también hay un video de demostración muy interesante.
Saludos
]]></description>
			<content:encoded><![CDATA[<p>Microsoft Live Labs Pivots es una herramienta para la explotación masiva de datos, que de momento puedes descargar de <a href="http://www.getpivot.com/" target="_blank">aquí</a>.</p>
<p>En la página también hay un video de demostración muy interesante.</p>
<p>Saludos</p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/04/herramienta-para-explotacion-de-grandes-volumenes-de-datos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publicado Ebook gratuito sobre SQL Server 2008 R2</title>
		<link>http://portalsql.com/index.php/2010/04/publicado-ebook-gratuito-sobre-sql-server-2008-r2/</link>
		<comments>http://portalsql.com/index.php/2010/04/publicado-ebook-gratuito-sobre-sql-server-2008-r2/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 22:40:10 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[O.T.]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=256</guid>
		<description><![CDATA[We’re thrilled to publish another free ebook: Introducing Microsoft SQL Server 2008 R2, by Ross Mistry and Stacia Misner!
The book contains 10 chapters and 216 pages, like so:
PART I   Database Administration
CHAPTER 1   SQL Server 2008 R2 Editions and Enhancements 3
CHAPTER 2   Multi-Server Administration 21
CHAPTER 3   Data-Tier Applications 41
CHAPTER 4   High Availability and Virtualization Enhancements 63
CHAPTER [...]]]></description>
			<content:encoded><![CDATA[<p>We’re thrilled to publish another free ebook: <em>Introducing Microsoft SQL Server 2008 R2</em>, by Ross Mistry and Stacia Misner!</p>
<p>The book contains 10 chapters and 216 pages, like so:</p>
<p>PART I   Database Administration</p>
<p>CHAPTER 1   SQL Server 2008 R2 Editions and Enhancements 3<br />
CHAPTER 2   Multi-Server Administration 21<br />
CHAPTER 3   Data-Tier Applications 41<br />
CHAPTER 4   High Availability and Virtualization Enhancements 63<br />
CHAPTER 5   Consolidation and Monitoring 85</p>
<p>PART II   Business Intelligence Development</p>
<p>CHAPTER 6   Scalable Data Warehousing 109<br />
CHAPTER 7   Master Data Services 125<br />
CHAPTER 8   Complex Event Processing with StreamInsight 145<br />
CHAPTER 9   Reporting Services Enhancements 165<br />
CHAPTER 10   Self-Service Analysis with PowerPivot 189</p>
<p>Here’s more info about the book:</p>
<p><a href="http://blogs.msdn.com/microsoft_press/archive/2010/04/14/free-ebook-introducing-microsoft-sql-server-2008-r2.aspx" target="_blank">Podeis verlo aquí</a></p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/04/publicado-ebook-gratuito-sobre-sql-server-2008-r2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pruebas unitarias en proyectos multidimensionales</title>
		<link>http://portalsql.com/index.php/2010/04/pruebas-unitarias-en-proyectos-multidimensionales/</link>
		<comments>http://portalsql.com/index.php/2010/04/pruebas-unitarias-en-proyectos-multidimensionales/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 10:27:20 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Analisys Services]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Relacional]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=251</guid>
		<description><![CDATA[Mi compañero en SolidQ Italia, Davide Mauri ha desarrollado un proyecto que me parece muy positivo.  Este es el mensaje que ha puesto Davide.
Y aquí puedes llegar al proyecto
A project that allow the execution of Unit Testing against a database (Relational or Multidimensional).
It uses NUnit (http://www.nunit.org/) )as unit-testing framework and does not require DBA or [...]]]></description>
			<content:encoded><![CDATA[<p>Mi compañero en SolidQ Italia, Davide Mauri ha desarrollado un proyecto que me parece muy positivo.  Este es el mensaje que ha puesto Davide.</p>
<p><a href="http://queryunit.codeplex.com/">Y aquí puedes llegar al proyecto</a></p>
<p>A project that allow the execution of Unit Testing against a database (Relational or Multidimensional).<br />
It uses NUnit (<a href="http://www.nunit.org/">http://www.nunit.org/</a>) )as unit-testing framework and does not require DBA or BI Developer to know anything about .NET: just write your SQL or MDX queries and test them. QueryUnit will take care of automatically create the assembly that will test your query for you, using NVelocity (<a href="http://nvelocity.codeplex.com/">http://nvelocity.codeplex.com/</a>) to generate .NET classes and the CodeDom engine to compile them at runtime.</p>
<p><a href="http://portalsql.com/wp-content/uploads/2010/04/QueryUnitPOC0006.png"><img class="aligncenter size-large wp-image-252" title="QueryUnitPOC0006" src="http://portalsql.com/wp-content/uploads/2010/04/QueryUnitPOC0006-1024x659.png" alt="" width="1024" height="659" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/04/pruebas-unitarias-en-proyectos-multidimensionales/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Un curso gratuito sobre SQL Server Azure</title>
		<link>http://portalsql.com/index.php/2010/04/un-curso-gratuito-sobre-sql-server-azure/</link>
		<comments>http://portalsql.com/index.php/2010/04/un-curso-gratuito-sobre-sql-server-azure/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 20:46:05 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Relacional]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=248</guid>
		<description><![CDATA[Para hacer el curso puedes pulsar aquí.  
Esto es lo que trata.








This two-hour clinic explores the capabilities of Introduction to Microsoft SQL Azure.
This clinic covers the following topics:

Understanding the SQL Azure Platform
Designing Applications for SQL Azure
Migrating Applications to SQL Azure
Achieving Scale with SQL Azure

Users completing this collection should have a basic understanding of SQL Server [...]]]></description>
			<content:encoded><![CDATA[<p>Para hacer el curso puedes pulsar <a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=168190&amp;tab=overview" target="_blank">aquí</a>.  </p>
<p>Esto es lo que trata.</p>
<table>
<tbody>
<tr>
<td>
<div id="courseMasterTabContents_overview">
<table width="100%">
<tbody>
<tr>
<td>This two-hour clinic explores the capabilities of Introduction to Microsoft SQL Azure.</p>
<p>This clinic covers the following topics:</p>
<ul>
<li>Understanding the SQL Azure Platform</li>
<li>Designing Applications for SQL Azure</li>
<li>Migrating Applications to SQL Azure</li>
<li>Achieving Scale with SQL Azure</li>
</ul>
<p>Users completing this collection should have a basic understanding of SQL Server and relational database systems.</td>
</tr>
<tr>
<td><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="8" /></td>
</tr>
<tr>
<td><strong>Objetivos</strong></td>
</tr>
<tr>
<td><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="4" /></td>
</tr>
<tr>
<td>
<div>Al finalizar el curso, los alumnos serán capaces de:</div>
<ul>
<li>Understand SQL Server Development</li>
<li>Understand relational database concepts</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div id="courseMasterTabContents_systemReqs">
<table width="100%">
<tbody>
<tr>
<td><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="6" /></td>
</tr>
<tr>
<td><strong>Requisitos del sistema</strong></td>
</tr>
<tr>
<td><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="4" /></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
<div>Para ver este curso, necesita:</div>
<ul>
<li>Pentium II, RAM de 256 MB con una velocidad de procesamiento de 400 MHZ o más.</li>
<li>Microsoft® Windows® 2000 o posterior.</li>
<li>Microsoft Internet Explorer 6.0 con SP1.</li>
<li>Macromedia Flash 7.0 o posterior (se necesita 1 MB de espacio en disco para la instalación).</li>
<li>Microsoft Virtual Server ActiveX control (necesario para los laboratorios virtuales; se necesita 1 MB de espacio en disco para la instalación).</li>
<li>Microsoft Windows Media Player 7.0 o posterior.</li>
<li>Microsoft XML Core Services 3.0 o posterior.</li>
<li>Un monitor Super VGA con resolución mínima de 1024 x 768, con colores a 16 bits.</li>
<li>Se recomiendan una tarjeta de sonido, parlantes o auriculares.</li>
<li>Un ancho de banda de Internet de 56K o superior. Se recomienda banda ancha.</li>
</ul>
<div>Para los cursos que incluyan prácticas basadas en Virtual Server (cursos en el catálogo para el programador y el profesional de tecnología de la información), necesitará:</div>
<ul>
<li>Control ActiveX de Microsoft Virtual Server (se requiere 1MB de espacio en disco para la instalación)</li>
</ul>
<p><a href="JavaScript:popupHelp('/help/systemRequirements.aspx');">Pruebe las capacidades de su equipo</a> para ver si podrá ejecutar este curso.</td>
</tr>
<tr>
<td><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="8" /></td>
</tr>
<tr>
<td><strong>Requisitos de accesibilidad</strong></td>
</tr>
<tr>
<td><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="4" /></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
<div>El software siguiente tiene que estar en ejecución en su equipo para poder obtener acceso a este curso con el software lector de pantalla:</div>
<ul>
<li>Microsoft Internet Explorer 5.0 o posterior</li>
<li>Window-Eyes de GW Micro</li>
<li>JAWS de Freedom Scientific</li>
<li>Habilitado para MSAA</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div id="courseMasterTabContents_details">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td width="100%"><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="20" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td width="100%" height="20">Módulos y lecciones<br />
<img src="/themes/default/images/1px.gif" alt="" width="100%" height="1" /></td>
</tr>
<tr>
<td colspan="2">Clinic Overview</td>
</tr>
<tr>
<td colspan="2">Module Overview</td>
</tr>
<tr>
<td colspan="2">Clinic Overview</td>
</tr>
<tr>
<td colspan="2">Navigation Overview</td>
</tr>
<tr>
<td colspan="2">Clinic Information</td>
</tr>
<tr>
<td colspan="2">Introduction to Microsoft SQL Azure</td>
</tr>
<tr>
<td colspan="2">Module Overview</td>
</tr>
<tr>
<td colspan="2">Understanding the SQL Azure Platform</td>
</tr>
<tr>
<td colspan="2">Introduction</td>
</tr>
<tr>
<td colspan="2">Windows Azure Platform</td>
</tr>
<tr>
<td colspan="2">Extending the SQL Data Platform to the Cloud</td>
</tr>
<tr>
<td colspan="2">What SQL Azure Is</td>
</tr>
<tr>
<td colspan="2">What SQL Azure Is Not</td>
</tr>
<tr>
<td colspan="2">When to Use SQL Azure vs Azure Tables</td>
</tr>
<tr>
<td colspan="2">SQL Azure Provisioning Model</td>
</tr>
<tr>
<td colspan="2">Provisioning a SQL Azure Account and Connecting to SQL Azure</td>
</tr>
<tr>
<td colspan="2">SQL Azure Architecture</td>
</tr>
<tr>
<td colspan="2">Creating a SQL Azure Database</td>
</tr>
<tr>
<td colspan="2">High Availability and Recovery</td>
</tr>
<tr>
<td colspan="2">Self Test</td>
</tr>
<tr>
<td colspan="2">Designing Applications for SQL Azure</td>
</tr>
<tr>
<td colspan="2">Introduction</td>
</tr>
<tr>
<td colspan="2">Logical vs Physical Administration</td>
</tr>
<tr>
<td colspan="2">Creating Objects in SQL Azure</td>
</tr>
<tr>
<td colspan="2">Compatibility Goals</td>
</tr>
<tr>
<td colspan="2">T-SQL</td>
</tr>
<tr>
<td colspan="2">T-SQL Support</td>
</tr>
<tr>
<td colspan="2">SQL Azure Security Model</td>
</tr>
<tr>
<td colspan="2">Managing Logins and Security</td>
</tr>
<tr>
<td colspan="2">Connection Model</td>
</tr>
<tr>
<td colspan="2">Managing Connections in SQL Azure Applications</td>
</tr>
<tr>
<td colspan="2">Managing Connections in a SQL Azure Application</td>
</tr>
<tr>
<td colspan="2">Self Test</td>
</tr>
<tr>
<td colspan="2">Migrating Applications to SQL Azure</td>
</tr>
<tr>
<td colspan="2">Introduction</td>
</tr>
<tr>
<td colspan="2">Migrating Database Schemas to SQL Azure</td>
</tr>
<tr>
<td colspan="2">Migrating Database Schema to SQL Azure</td>
</tr>
<tr>
<td colspan="2">Migrating Application Data to SQL Azure</td>
</tr>
<tr>
<td colspan="2">SQL Server Integration Services</td>
</tr>
<tr>
<td colspan="2">Working with BCP</td>
</tr>
<tr>
<td colspan="2">Migrating Application Data to SQL Azure Using SSIS</td>
</tr>
<tr>
<td colspan="2">Choosing an Appropriate Local Caching Strategy</td>
</tr>
<tr>
<td colspan="2">Using Local Caching with SQL Azure Data Sync</td>
</tr>
<tr>
<td colspan="2">PHP Support for SQL Azure</td>
</tr>
<tr>
<td colspan="2">Self Test</td>
</tr>
<tr>
<td colspan="2">Achieving Scale with SQL Azure</td>
</tr>
<tr>
<td colspan="2">Introduction</td>
</tr>
<tr>
<td colspan="2">Why Scale Out?</td>
</tr>
<tr>
<td colspan="2">Database Size</td>
</tr>
<tr>
<td colspan="2">Performance Considerations</td>
</tr>
<tr>
<td colspan="2">Accessing Usage Data from System Views</td>
</tr>
<tr>
<td colspan="2">Scale out Considerations</td>
</tr>
<tr>
<td colspan="2">Throttling Considerations</td>
</tr>
<tr>
<td colspan="2">Sharding Basics</td>
</tr>
<tr>
<td colspan="2">Example Sharded Database Model</td>
</tr>
<tr>
<td colspan="2">Working with a Sharded Database</td>
</tr>
<tr>
<td colspan="2">Self Test</td>
</tr>
<tr>
<td colspan="2">Module Summary</td>
</tr>
<tr>
<td colspan="2">Module Summary</td>
</tr>
<tr>
<td colspan="2">Glossary</td>
</tr>
<tr>
<td colspan="2">Glossary</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<div id="courseMasterTabContents_assessment">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td colspan="2"><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="10" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td width="100%">Para realizar una evaluación, <a href="/signIn.aspx">conéctese</a> a su cuenta Passport Network.</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td width="100%">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td valign="middle">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td width="100%" valign="middle"><strong>Puntaje más reciente: </strong><a href="/signIn.aspx"><strong>Ingresar</strong></a></td>
<td align="right">
<input onclick="openAssessmentWindow( 168190,&quot;&quot; )" disabled="disabled" type="button" value="Hacer evaluación" /></td>
<td width="10"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr valign="top">
<td width="100%">Seleccionó la opción de realizar una evaluación. Recibirá distintas preguntas para la evaluación. Respóndalas lo mejor que pueda.</p>
<ul>
<li>Podrá revisar sus respuestas en cualquier momento, antes de finalizar la evaluación, al hacer clic en <strong>Revisar</strong></li>
<li>Podrá finalizar la evaluación en cualquier momento al hacer clic en <strong>Finalizar</strong>. En ese momento, cualquier pregunta sin responder será considerada como incorrecta.</li>
<li>Haga clic en <strong>Ayuda</strong> en cualquier momento para obtener información acerca de la utilización de las evaluaciones.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<td><img src="/themes/default/images/1px.gif" border="0" alt="" width="1" height="30" /></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/04/un-curso-gratuito-sobre-sql-server-azure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
