<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog de Mario Uriarte</title>
	<atom:link href="http://muriarte.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://muriarte.wordpress.com</link>
	<description>Detalles sobre Desarrollo de Sistemas y granitos de sal para la vida.</description>
	<lastBuildDate>Thu, 05 Jan 2012 18:43:24 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='muriarte.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/8baa4b8386fd3cf1eda5ebd204820b7e?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Blog de Mario Uriarte</title>
		<link>http://muriarte.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://muriarte.wordpress.com/osd.xml" title="Blog de Mario Uriarte" />
	<atom:link rel='hub' href='http://muriarte.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Cómo reparar una base de datos de SQL Server (Montada)</title>
		<link>http://muriarte.wordpress.com/2012/01/05/como-reparar-una-base-de-datos-de-sql-server-montada/</link>
		<comments>http://muriarte.wordpress.com/2012/01/05/como-reparar-una-base-de-datos-de-sql-server-montada/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 17:35:23 +0000</pubDate>
		<dc:creator>muriarte</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[bases de datos]]></category>
		<category><![CDATA[reparar]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://muriarte.wordpress.com/?p=37</guid>
		<description><![CDATA[Si la base de datos ha podido ser montada se puede utilizar el comando DBCC CHECKDB tal como se describe en: http://www.cryer.co.uk/brian/sqlserver/howto_repair_a_database.htm escrito por Brian Cryer He aqui una traducción: Para determinar si una base de datos necesita ser reparada ejecutar: dbcc checkdb('DB-NAME') with no_infomsgs reemplazando  &#8217;DB-NAME&#8217; con el nombre de la base de datos. Si [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=37&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Si la base de datos ha podido ser montada se puede utilizar el comando DBCC CHECKDB tal como se describe en:</p>
<p><a href="http://www.cryer.co.uk/brian/sqlserver/howto_repair_a_database.htm">http://www.cryer.co.uk/brian/sqlserver/howto_repair_a_database.htm</a> escrito por Brian Cryer</p>
<p>He aqui una traducción:</p>
<p>Para determinar si una base de datos necesita ser reparada ejecutar:</p>
<pre>dbcc checkdb('DB-NAME') with no_infomsgs</pre>
<p>reemplazando  &#8217;DB-NAME&#8217; con el nombre de la base de datos.</p>
<p>Si el comando se completa sin desplegar errores la base de datos no necesita ser reparada.<br />
Si los errores que aparecen contienen lineas con la leyenda:</p>
<pre>... Run DBCC UPDATEUSAGE</pre>
<p>entonces la base de datos NO necesita ser reparada, simplemente ejecute el siguiente comando:</p>
<pre>dbcc updateusage('DB-NAME') with no_infomsgs</pre>
<p>Si una base de datos no necesita ser reparada entonces:</p>
<ol>
<li>Si es posible, identifique porque la base de datos necesita ser reparada. Revisar el visor de eventos de sistema y de aplicaciones de windows para ver si hay registros de eventos que pudieran estar relacionados con el problema. Por ejemplo Por ejemplo ¿El problema es provocado por una falla de disco duro? Con frecuencia no será posible identificar la causa, pero en caso de ser posible recuerde corregir el problema detectado.</li>
<li>Se sugiere que, en vez de reparar la base de datos, esta sea restaurada a partir del último respaldo confiable.</li>
</ol>
<p>Para reparar la base de datos, primero debemos ponerla en modo monousuario (usuario único):</p>
<pre>alter database DB-NAME set SINGLE_USER</pre>
<p>en caso de que la base de datos sea MASTER o MSDB consulte  &#8221;<a href="http://www.cryer.co.uk/brian/sqlserver/howto_set_database_single_user.htm">How to set a single database into single user mode</a>&#8220;.</p>
<p>Una vez que la base de datos ha sido puesta en modo monousuario ya puede ser reparada. Existen varias opciones de reparación pero las dos que típicamente se utilizan son &#8220;REPAIR_REBUILD&#8221; y &#8220;REPAIR_ALLOW_DATA_LOSS&#8221;.  Sugiero, en primera instancia, usar:</p>
<pre>dbcc checkdb('DB-NAME',REPAIR_REBUILD)</pre>
<p>esto realizara cualquier reparación que SQL Server pueda realizar sin perder datos.</p>
<div>
<p>Si  (y sólo si)  SQL Server no puede reparar la base de datos sin pérdida de datos, entonces usar:</p>
<pre>dbcc checkdb('DB-NAME',REPAIR_ALLOW_DATA_LOSS)</pre>
</div>
<p>una vez que la base de datos ha sido reparada debe ser devuelta a modo multiusuario:</p>
<pre>set database DB-NAME set MULTI_USER
(Estos comandos han sido probados en SQL Server 2005)</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/muriarte.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/muriarte.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/muriarte.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/muriarte.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/muriarte.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/muriarte.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/muriarte.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/muriarte.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/muriarte.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/muriarte.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/muriarte.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/muriarte.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/muriarte.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/muriarte.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=37&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://muriarte.wordpress.com/2012/01/05/como-reparar-una-base-de-datos-de-sql-server-montada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a54b98906aad77823022879969e7e2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">muriarte</media:title>
		</media:content>
	</item>
		<item>
		<title>Métodos de búsqueda y ordenamiento en listas y arrays en .NET (Parte 2)</title>
		<link>http://muriarte.wordpress.com/2012/01/04/metodos-de-busqueda-y-ordenamiento-en-listas-y-arrays-parte-2/</link>
		<comments>http://muriarte.wordpress.com/2012/01/04/metodos-de-busqueda-y-ordenamiento-en-listas-y-arrays-parte-2/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 01:09:20 +0000</pubDate>
		<dc:creator>muriarte</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[busqueda]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[ordenamiento]]></category>
		<category><![CDATA[predicate]]></category>

		<guid isPermaLink="false">http://muriarte.wordpress.com/?p=31</guid>
		<description><![CDATA[Abundando en el método Sort de listas genéricas, a continuación muestro dos formas de ordenar listas genéricas de objetos en VB.Net. Para ambas formas utilizaré a modo de ejemplo la siguiente clase: Public Class myKeyAndData Private pnKey As Integer Private pcData As String    Public Sub New() pnKey = 0 pcData = "" End Sub [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=31&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Abundando en el método Sort de listas genéricas, a continuación muestro dos formas de ordenar listas genéricas de objetos en VB.Net.</p>
<p>Para ambas formas utilizaré a modo de ejemplo la siguiente clase:</p>
<pre>Public Class myKeyAndData
   Private pnKey As Integer
   Private pcData As String

   Public Sub New()
      pnKey = 0
      pcData = ""
   End Sub

   Public Sub New(ByVal tnKey As Integer, ByVal tcData As String)
      pnKey = tnKey
      pcData = tcData
   End Sub

   Public Property Key() As Integer
   Get
      Return pnKey
   End
   Get
   Set(ByVal value As Integer)
      pnKey = value
   End Set
   End Property
   Public Property Data() As String
   Get
      Return pcData
   End Get
   Set(ByVal value As String)
      pcData = value
   End Set
   End Property
End Class</pre>
<p><strong>METODO 1: Definir una clase adicional que implemente la interface IComparer.</strong></p>
<pre>Private Class ItemsComparer
Implements IComparer(Of myKeyAndData)
   Public Function Compare(ByVal p1 As myKeyAndData, _
         ByVal p2 As myKeyAndData) As Integer Implements _
         IComparer(Of myKeyAndData).Compare
      Return p1.Data.CompareTo(p2.Data)
   End Function
End Class</pre>
<p><strong><em>Ejemplo:</em></strong></p>
<pre>   Dim loLista as new List(of myKeyAndData)
   loLista.add(new miKeyAndData(1,"Rodolfo")
   loLista.add(new miKeyAndData(2,"Antonio")
   loLista.add(new miKeyAndData(3,"Mario")
   loLista.add(new miKeyAndData(4,"Carlos")
   loLista.Sort(New ItemsComparer)</pre>
<p><strong>METODO 2: Hacer que la clase implemente la interface IComparable.</strong></p>
<pre>Public Class myKeyAndData
Implements IComparable(Of myKeyAndData)
   Private pnKey As Integer
   Private pcData As String

   Public Sub New()
      pnKey = 0
      pcData = ""
   End Sub

   Public Sub New(ByVal tnKey As Integer, ByVal tcData As String)
      pnKey = tnKey
      pcData = tcData
   End Sub

   Public Property Key() As Integer
   Get
      Return pnKey
   End Get
   Set(ByVal value As Integer)
      pnKey = value
   End Set
   End Property

   Public Property Data() As String
   Get
      Return pcData
   End Get
   Set(ByVal value As String)
      pcData = value
   End Set
   End Property

   Public Function CompareTo(ByVal toOtro As myKeyAndData) As Integer _
            Implements IComparable(Of myKeyAndData).CompareTo
      return Data.CompareTo(toOtro.Data)
   End Function

End Class</pre>
<p><em><strong>Ejemplo:</strong></em></p>
<pre>   Dim loLista as new List(of myKeyAndData)
   loLista.add(new miKeyAndData(1,"Rodolfo")
   loLista.add(new miKeyAndData(2,"Antonio")
   loLista.add(new miKeyAndData(3,"Mario")
   loLista.add(new miKeyAndData(4,"Carlos")
   loLista.Sort()</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/muriarte.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/muriarte.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/muriarte.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/muriarte.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/muriarte.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/muriarte.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/muriarte.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/muriarte.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/muriarte.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/muriarte.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/muriarte.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/muriarte.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/muriarte.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/muriarte.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=31&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://muriarte.wordpress.com/2012/01/04/metodos-de-busqueda-y-ordenamiento-en-listas-y-arrays-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a54b98906aad77823022879969e7e2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">muriarte</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrar Vault o Fortress con VB6</title>
		<link>http://muriarte.wordpress.com/2009/05/06/integrar-vault-o-fortress-con-vb6/</link>
		<comments>http://muriarte.wordpress.com/2009/05/06/integrar-vault-o-fortress-con-vb6/#comments</comments>
		<pubDate>Wed, 06 May 2009 19:45:02 +0000</pubDate>
		<dc:creator>muriarte</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Fortress]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Vault]]></category>
		<category><![CDATA[VB6]]></category>

		<guid isPermaLink="false">http://muriarte.wordpress.com/?p=28</guid>
		<description><![CDATA[Este Post ubicado en el Sitio de Soporte de SourceGear explica como configurar VB6 para integrarse a Vault o Fortress para el Control de Codigo Fuente (Source Code Control). Extracto: You may have to do some additional configuration to enable Vault integration with Visual Basic 6. First, verify that Vault is your default Source Code Control Provider. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=28&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Este <a title="Post en el Sitio de Soporte de Sourcegear.com" href="http://support.sourcegear.com/viewtopic.php?t=2118">Post ubicado en el Sitio de Soporte de SourceGear</a> explica como configurar VB6 para integrarse a Vault o Fortress para el Control de Codigo Fuente (Source Code Control).</p>
<p>Extracto:</p>
<blockquote><p>You may have to do some additional configuration to enable Vault integration with Visual Basic 6.</p>
<p>First, verify that Vault is your default Source Code Control Provider.</p>
<p>This setting is in the Vault Client under Tools-&gt;Options-&gt;General.</p>
<p>Next, in the VB menu select Add-ins-&gt;Add-in Manager. From the list of available Add-ins, highlight &#8220;Source Code Control&#8221; and make sure &#8220;Load on Startup&#8221; and &#8220;Loaded/Unloaded&#8221; are checked in Load Behavior.</p>
<p>Additionally, you may want to check your vbaddin.ini file.There should be an entry for source code control integration. If not add the following entry: vbscc=1</p>
<p>Additional details in this Microsoft KB article: <a title="Link al sitio de Soporte de Microsoft" href="http://support.microsoft.com/kb/305024/EN-US/">http://support.microsoft.com/kb/305024/EN-US/</a></p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/muriarte.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/muriarte.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/muriarte.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/muriarte.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/muriarte.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/muriarte.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/muriarte.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/muriarte.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/muriarte.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/muriarte.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/muriarte.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/muriarte.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/muriarte.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/muriarte.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=28&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://muriarte.wordpress.com/2009/05/06/integrar-vault-o-fortress-con-vb6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a54b98906aad77823022879969e7e2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">muriarte</media:title>
		</media:content>
	</item>
		<item>
		<title>Regenerar Datasets en Visual Studio 2005 en proyectos con control de código fuente</title>
		<link>http://muriarte.wordpress.com/2008/12/18/regenerar-datasets-en-visual-studio-2005-en-proyectos-con-control-de-codigo-fuente/</link>
		<comments>http://muriarte.wordpress.com/2008/12/18/regenerar-datasets-en-visual-studio-2005-en-proyectos-con-control-de-codigo-fuente/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 00:00:09 +0000</pubDate>
		<dc:creator>muriarte</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[CVS]]></category>
		<category><![CDATA[CVSNT]]></category>
		<category><![CDATA[Dataset]]></category>
		<category><![CDATA[PushOk]]></category>

		<guid isPermaLink="false">http://muriarte.wordpress.com/?p=21</guid>
		<description><![CDATA[Tuve que regenerar un Dataset en Visual Studio 2005 en un proyecto de una aplicación de windows (WinForms), utilizando control de código fuente en un servidor de CVSNT utilizando el plugin CVSSCC NT de PushOk Software. El dataset por regenerar ya existe en un subdirectorio “Reportes/Dataset” dentro del proyecto. El problema es que no puedo generar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=21&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Tuve que regenerar un Dataset en Visual Studio 2005 en un proyecto de una aplicación de windows (WinForms), utilizando control de código fuente en un servidor de CVSNT utilizando el <a href="http://www.pushok.com/soft_cvs_proxy.php" target="_blank">plugin CVSSCC NT de PushOk Software</a>.</p>
<p>El dataset por regenerar ya existe en un subdirectorio “Reportes/Dataset” dentro del proyecto.</p>
<p>El problema es que no puedo generar el dataset si ya existe y tendria que borrarlo del proyecto o borrarlo localmente lo cual genera algunos problemas con la sincronizacion entre el archivo de control de proyecto de VS2005 y el control de codigo fuente.<span id="more-21"></span></p>
<p>Lo que hice para solucionarlo fue implementar el siguiente procedimiento cada vez que deseo regenerar un dataset.</p>
<ol>
<li><strong>Hacer checkout del dataset.</strong> (Esto eliminará el atributo de solo lectura de los archivos del dataset y nos permitirá sobreescribrilos en el paso 5)</li>
<li><strong>Excluir el dataset del proyecto</strong> haciendo click con el boton derecho en el dataset selecciono “Exclude from Project”. Esto no borrará el dataset solamente nos permitirá regenerar el dataset sin que VS2005 se queje de que ya existe.</li>
<li><strong>Generar el dataset </strong>utilizando el menú Data-&gt;Add New Data Source… (Recuerde poner en el campo “Dataset Name:” el mismo nombre del dataset que desea reemplazar)</li>
<li><strong>Excluir del proyecto el dataset recien generado</strong> ya que fué generado en el directorio raiz del proyecto y deseamos moverlo al subdirectorio donde reemplazará al antiguo Dataset.</li>
<li><strong>Mover los archivos del dataset (son 4, con extensiones .xsd, .xsc, .xss y .designer.vb) al subdirectorio deseado</strong> (tendrá que sobreescribir los archivos del dataset antiguo). Utilize su administrador de archivos favorito, si no tiene otro utilice Windows Explorer. (Puedes hechar un vistazo a la versión gratuita de <a href="http://www.zabkat.com/x2lite.htm" target="_blank">xplorer2</a>)</li>
<li><strong>Incluir el nuevo dataset en el proyecto </strong>(Tal vez sea necesario oprimir el botón “Refresh” en el minitoolbar del Solution Explorer de VS2005 en el subdirectorio que contiene el dataset) (debe tener activada la opcion Show All Files en el minitoolbar del solution explorer para poder ver los archivos que se encuentran en los directorios del proyecto pero no pertenecen al proyecto, los reconocerá porque su icono de color blanco). Haga click en el dataset con el botón derecho del ratón y seleccione la opción “Include In Project”. VS2005 mostrará un cuadro de diálogo indicando que ya existe un archivo con ese nombre en el control de código fuente y te pregunta si deseas proseguir agregando el archivo o cancelar la acción, oprime el botón “Add the item”, este cuadro de diálogo aparecerá cuatro veces (uno por cada archivo del dataset).</li>
</ol>
<p>Es un poco de rollo pero esta es la forma más fácil de hacerlo que encontré y que no provoca problemas con la sincronización entre VS2005 y el control de código fuente.</p>
<p>Si tienes una manera mas sencilla de hacerlo por favor no dudes en hacérmelo saber.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/muriarte.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/muriarte.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/muriarte.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/muriarte.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/muriarte.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/muriarte.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/muriarte.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/muriarte.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/muriarte.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/muriarte.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/muriarte.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/muriarte.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/muriarte.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/muriarte.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=21&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://muriarte.wordpress.com/2008/12/18/regenerar-datasets-en-visual-studio-2005-en-proyectos-con-control-de-codigo-fuente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a54b98906aad77823022879969e7e2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">muriarte</media:title>
		</media:content>
	</item>
		<item>
		<title>Ejercicio como parte de su vida</title>
		<link>http://muriarte.wordpress.com/2008/12/17/ejercicio-como-parte-de-su-vida/</link>
		<comments>http://muriarte.wordpress.com/2008/12/17/ejercicio-como-parte-de-su-vida/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 21:31:09 +0000</pubDate>
		<dc:creator>muriarte</dc:creator>
				<category><![CDATA[Salud]]></category>
		<category><![CDATA[calorias]]></category>
		<category><![CDATA[caminata]]></category>
		<category><![CDATA[ejercicio]]></category>

		<guid isPermaLink="false">http://muriarte.wordpress.com/?p=14</guid>
		<description><![CDATA[Extracto de un artículo en http://www.urbanext.uiuc.edu/diabetes_sp/0408.html: Ejercicio como parte de su vida Si usted camina con paso más rápido de lo normal, por 20 minutos cada día, usted podría quemar de 80 a 100 calorías. Esto es similar a una rebanada del pan o 2 galletas pequeñas. !No suena mucho! A corto plazo, hacer ejercicios puede [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=14&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Extracto de un artículo en <a href="http://www.urbanext.uiuc.edu/diabetes_sp/0408.html" target="_blank">http://www.urbanext.uiuc.edu/diabetes_sp/0408.html</a>:</p>
<blockquote>
<h5>Ejercicio como parte de su vida</h5>
<p>Si usted camina con paso más rápido de lo normal, por 20 minutos cada día, usted podría quemar de 80 a 100 calorías. Esto es similar a una rebanada del pan o 2 galletas pequeñas. !No suena mucho!<br />
<span id="more-14"></span><br />
<span style="color:#0000ff;">A corto plazo, hacer ejercicios puede no quemar muchas calorías. Es el largo plazo el que es más importante. Al continuar su rutina de caminata de 20 minutos cada día, puede aumentar la cantidad de carne sin grasa &#8211; músculo en su cuerpo. El músculo utiliza más calorías, aunque esté descansando, que el tejido grasoso de la piel.</span></p>
<p>Por ejemplo, si una persona pesa 140 libras, y tiene 35% de grasa en su cuerpo, él o ella tendría 49 libras de grasa y 91 libras de músculo en su cuerpo. El total de calorías básicas que necesita sólo para respirar y no hacer nada sería cerca de 1,260 calorías al día. Si la misma persona tuviera solamente 20% de grasa en su cuerpo, él o ella tendría un total básico de calorías de 1,470 por día. Se agrega a las calorías básicas necesarias, que son cualquier caloría necesitada para una actividad. Así que, entre más activo sea, más calorías quema y la masa muscular del cuerpo aumenta.</p>
<p>Mantenga su rutina de caminata – y hable con su doctor sobre su programa de actividades.</p></blockquote>
<p>Espero que les sirva de motivación para perseverar ejercitandose.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/muriarte.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/muriarte.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/muriarte.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/muriarte.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/muriarte.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/muriarte.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/muriarte.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/muriarte.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/muriarte.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/muriarte.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/muriarte.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/muriarte.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/muriarte.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/muriarte.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=14&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://muriarte.wordpress.com/2008/12/17/ejercicio-como-parte-de-su-vida/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a54b98906aad77823022879969e7e2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">muriarte</media:title>
		</media:content>
	</item>
		<item>
		<title>Métodos de búsqueda y ordenamiento en listas y arrays en .NET</title>
		<link>http://muriarte.wordpress.com/2008/12/17/metodos-de-busqueda-y-ordenamiento-en-listas-y-arrays-en-net/</link>
		<comments>http://muriarte.wordpress.com/2008/12/17/metodos-de-busqueda-y-ordenamiento-en-listas-y-arrays-en-net/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 21:25:02 +0000</pubDate>
		<dc:creator>muriarte</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[busqueda]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[ordenamiento]]></category>
		<category><![CDATA[predicate]]></category>

		<guid isPermaLink="false">http://muriarte.wordpress.com/?p=8</guid>
		<description><![CDATA[Algunos métodos de búsqueda en listas y &#8220;arrays&#8221; de .NET framework (como Find(), FindAll(), Exists(), FindIndex(), etc) requieren que se les proporcione un &#8220;Predicate&#8221;. Por ejemplo el método Find de la clase array tiene la siguiente firma (VB.NET): Public Shared Function Find(Of T) ( _ array As T(), _ match As Predicate(Of T) _ ) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=8&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Algunos métodos de búsqueda en listas y &#8220;arrays&#8221; de .NET framework (como Find(), FindAll(), Exists(), FindIndex(), etc) requieren que se les proporcione un &#8220;Predicate&#8221;.<br />
Por ejemplo el método Find de la clase array tiene la siguiente firma (VB.NET):</p>
<blockquote>
<pre class="code">Public Shared Function Find(Of T) ( _
    array As T(), _
    match As Predicate(Of T) _ ) As T</pre>
</blockquote>
<p align="justify"><span style="color:#000000;"><span id="more-8"></span>Dirijamos nuestra atención al segundo parámetro: <strong>match</strong>, se ha declarado de tipo <strong>Predicate(Of T)</strong>, esto significa que cuando se llame el método Find esperará como parametro la dirección de una función que retorna un valor lógico (booleano) que determinará si se cumplen ciertos criterios definidos por ella misma.</span></p>
<p><span style="color:#000000;">En el caso del método Find si los criterios se cumplen la función enviada como Predicate retornará TRUE, indicándole a la logica interna del método FIND que el elemento que le ha enviado es el que esta buscando.</span></p>
<p><span style="color:#000000;">Ejemplo de uso de predicates con la funcion array.find (Extraido de la ayuda de VS.NET):</span></p>
<pre>Imports System
Imports System.Drawing

Public Class Example

 Public Shared Sub Main()

<span style="color:#00ff80;"><span style="color:#008000;"> ‘ Creamos un array de 5 estructuras Point.</span> </span>   Dim points() As Point = { new Point(100, 200), _
       new Point(150, 250), new Point(250, 375), _
       new Point(275, 395), new Point(295, 450) }
<span style="color:#008000;"> ‘ Para buscar el primer Point, cuyo resultado de ‘ multiplicar sus propiedades X y Y sea mayor que 10, ‘ pasamos el array y un "delegate" que representa al ‘ método ResultadoMayor10K al método Find de la ‘clase Array (Es un método Shared).</span>
   Dim primero As Point = Array.Find(points, _
       AddressOf ResultadoMayor10K)

<span style="color:#008000;"> ‘ Nota que no necesitas crear el Delegate explicitamente ‘ ni especificar el tipo de parametros del métod generico, ‘ porque el compilador tiene suficiente información del ‘ contexto para determinar la información por si mismo. ‘ Despliega los valores del primer Point encontrado.</span>
   Console.WriteLine("Encontrado: X = {0}, Y = {1}", _
       primero.X, primero.Y)
 End Sub

<span style="color:#008000;"> ‘ Este método implementa la condición de cumplimiento para ‘ el método Find.</span>
 Private Shared Function ResultadoMayor10K(ByVal p As Point) _                                                  As Boolean
   If p.X * p.Y &gt; 100000 Then
       Return True
   Else
       Return False
   End If
 End Function
End Class

<span style="color:#008000;">‘ Este código ejemplo produce los siguientes resultados: ‘ Encontrado: X = 275, Y = 395</span></pre>
<p>Si el criterio de búsqueda depende de una variable (como en la mayoria de los casos reales) nos podemos ayudar de alguna variable declarada en un nivel de módulo (declarada a nivel clase por ejemplo) asi podriamos sustituir la linea:</p>
<p>If p.X * p.Y &gt; 100000 Then</p>
<p>por</p>
<p>If p.X * p.Y &gt; pnLimit Then</p>
<p>donde el valor de pnLimit tendría que establecerse antes de llamar el método Find.</p>
<p>Por otra parte, las funciones de ordenamiento como Sort, esperan una función que compare dos elementos (del tipo de elementos que contenga el array o lista que se desea ordenar) que recibirá como parametros y retorne un valor integer que sea:</p>
<p>-Negativo si el primer elemento es menor que el segundo</p>
<p>-Igual a cero si ambos elementos son iguales</p>
<p>-Positivo si el primer elemento es mayor que el segundo</p>
<p>Ejemplo:</p>
<pre class="code">Private Function Compara_Por_Nombre(ByVal lhs As miTipo, _
                                    ByVal rhs As miTipo) As Integer  Return lhs.Nombre.CompareTo(rhs.Nombre)
End Function</pre>
<p>En este caso miTipo es un aestructura o clase definida por el usuario cuya propiedad Nombre es de tipo string, se ha utilizado el método CompareTo (presente en casi todos los tipos Nativos de .NET) que funciona bajo las reglas esperadas por Sort pero nada impide que lo implementemos utilizando instrucciones case o If:</p>
<p><span style="font-family:'Courier New';"><span style="color:#000000;">Private Function Compara_Por_Nombre(ByVal lhs As miTipo,<br />
ByVal rhs As miTipo) As I</span></span><span style="font-family:'Courier New';color:#000000;">nteger<br />
dim lnRet as integer<br />
</span><span style="font-family:'Courier New';color:#000000;">   if lhs.Nombre&lt;rhs.Nombre then<br />
lnRet=-1<br />
elseif lhs.Nombre=rhs.Nombre then<br />
lnRet=0</span><span style="font-family:'Courier New';color:#000000;"><br />
else<br />
lnRet=1<br />
end if</span><span style="font-family:'Courier New';"><span style="color:#000000;"><br />
Return lnRet</span></span></p>
<p>End Function</p>
<p>Espero que este artículo les facilite el uso de estos métodos tan útiles.</p>
<p>Hasta la próxima.</p>
<p><strong>P.D.:</strong><br />
Abundando un poco sobre los predicates:</p>
<p>Un “Predicate” es un “Delegate” Generico diseñado para aceptar un solo criterio de entrada (del tipo definido por el valor generico) y regresar un valor lógico (booleano) que indica si el valor de entrada cumple el criterio definido.</p>
<p>Un “Delegate” es una direccion de una funcion, en VB.NET se obtiene dicha direccion mediante el comando AddressOf:</p>
<p>Ejemplo: AddressOf miFuncion</p>
<p>Hay varios tipos de delegates: predicates, actions, comparisons, etc. Se diferencia por el numero de valores de entrada que reciben y el significado de los valores que regresan (si es que regresan alguno).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/muriarte.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/muriarte.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/muriarte.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/muriarte.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/muriarte.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/muriarte.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/muriarte.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/muriarte.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/muriarte.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/muriarte.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/muriarte.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/muriarte.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/muriarte.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/muriarte.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=muriarte.wordpress.com&amp;blog=5863129&amp;post=8&amp;subd=muriarte&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://muriarte.wordpress.com/2008/12/17/metodos-de-busqueda-y-ordenamiento-en-listas-y-arrays-en-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4a54b98906aad77823022879969e7e2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">muriarte</media:title>
		</media:content>
	</item>
	</channel>
</rss>
