<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6197198616904517016</id><updated>2012-02-16T04:53:41.671-08:00</updated><category term='Vista'/><category term='PATH'/><category term='SCHEMA'/><category term='TRAN'/><category term='seguridad'/><category term='FILEGROUP'/><category term='PARTITION'/><category term='SQL Server 2000'/><category term='SQL Server'/><category term='EXPLICIT'/><category term='Programación Web'/><category term='Windows'/><category term='SCHEME'/><category term='c#'/><category term='Visual Studio 2008'/><category term='SELECT'/><category term='PROCEDURE'/><category term='Visual Basic'/><category term='Vistas'/><category term='.net'/><category term='DROP'/><category term='Office 2007'/><category term='TRY'/><category term='timestamp'/><category term='TYPE'/><category term='Instalacion desatendida'/><category term='DATABASE'/><category term='Visual Basic 6'/><category term='extensores'/><category term='CREATE'/><category term='TABLE'/><category term='Recursos'/><category term='SQL Server 2005'/><category term='AUTO'/><category term='CATCH'/><category term='XML'/><category term='metadatos'/><category term='Joomla'/><category term='SNAPSHOT'/><category term='FUNCTION'/><category term='RAW'/><category term='funciones'/><category term='Saludos'/><category term='HTML'/><category term='ALTER'/><category term='ATER'/><category term='T-SQL'/><category term='WPF'/><category term='transacciones'/><category term='Silverlight'/><title type='text'>NET Developer</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4426892183621425916</id><published>2010-02-02T04:55:00.000-08:00</published><updated>2010-02-02T04:56:47.201-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Comparación de características entre versiones de SQLServer 2005</title><content type='html'>MSDN: &lt;a href="http://www.microsoft.com/Sqlserver/2005/en/us/compare-features.aspx"&gt;http://www.microsoft.com/Sqlserver/2005/en/us/compare-features.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4426892183621425916?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4426892183621425916/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4426892183621425916' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4426892183621425916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4426892183621425916'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2010/02/comparacion-de-caracteristicas-entre.html' title='Comparación de características entre versiones de SQLServer 2005'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4882014234430690301</id><published>2010-02-02T04:51:00.000-08:00</published><updated>2010-02-02T04:55:08.994-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2000'/><title type='text'>Actualizar una base de datos de SQL Server 2000 a SQL Server 2005</title><content type='html'>Para actualizar una base de datos de SQL2000 a SQL2005 bastará con destatacharla del servidor 2000 y atacharla al servidor de 2005.&lt;br /&gt;Tras esto habrá que ejecutar el comando:&lt;br /&gt;&lt;br /&gt;DBCC UPDATEUSAGE&lt;br /&gt;&lt;br /&gt;MSDN: &lt;a href="http://msdn.microsoft.com/es-es/library/ms189625.aspx"&gt;http://msdn.microsoft.com/es-es/library/ms189625.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4882014234430690301?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4882014234430690301/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4882014234430690301' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4882014234430690301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4882014234430690301'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2010/02/actualizar-una-base-de-datos-de-sql.html' title='Actualizar una base de datos de SQL Server 2000 a SQL Server 2005'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-6662515452052052467</id><published>2010-01-19T13:59:00.001-08:00</published><updated>2010-01-19T14:13:48.966-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extensores'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Método IsDate como extensor de String</title><content type='html'>&lt;div align="justify"&gt;Tras leer un árticulo en la web sobre métodos extensores en Visual Studio 2008 y para probar la facilidad de uso de estos he implementado en método IsDate, extensor de String que siempre viene bien para comprobar las cadenas que son fechas válidas. El código quedaría como sigue:&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Clase que implementa métodos extensores.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;public static class Extensores&lt;br /&gt;{&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Determina si una cadena es o no una fecha válida.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;/// &lt;param name="cadena"&gt;Cadena a validar.&lt;/param&gt;&lt;br /&gt;/// &lt;returns&gt;&lt;br /&gt;/// &lt;c&gt;true&lt;/c&gt; si la cadena es una fecha válida, sino &lt;c&gt;false&lt;/c&gt;.&lt;br /&gt;/// &lt;/returns&gt;&lt;br /&gt;public static bool IsDate(this String cadena)&lt;br /&gt;{&lt;br /&gt;DateTime d;&lt;br /&gt;return DateTime.TryParse(cadena, out d);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Es decir basta con crear una clase estática con una función estatica IsDate con un parámetro (this String cadena). Con esta nomenclatura le estamos diciendo que el metodo extensor es para la clase String.&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;He usado la funcion TryParse  de DateTime porque según he leido es más eficiente que usar bloques try - catch - finally.&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;No es muy dificil de implementar pues y el uso seria muy facil puesto que ahora nuestra clase String posee un metodo nuevo al que podremos acceder facilmente:&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;String.Empty.IsDate()&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;Esa llamada se evalua como falso ya que la cadena vacia no es una fecha válida.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-6662515452052052467?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/6662515452052052467/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=6662515452052052467' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6662515452052052467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6662515452052052467'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2010/01/metodo-isdate-como-extensor-de-string.html' title='Método IsDate como extensor de String'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-803068218556589852</id><published>2009-08-18T09:13:00.000-07:00</published><updated>2009-08-18T09:17:55.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programación Web'/><title type='text'>Obtener la url de tu página web con ASP</title><content type='html'>Para crear un link a la hora de enviar un correo electronico automaticamente tras el registro de un usuario necesitaba obtener la url completa de la pagina a la que debia de hacer referencia dicho link. Tras googlear un poco encuentre esta solución:&lt;br /&gt;&lt;br /&gt;Request.Url.Authority&lt;br /&gt;&lt;br /&gt;Esta linea de codigo c# obtiene la direccion base de la web por ejemplo en mi caso, con el servidor de desarrollo de NET me devuelve esto:&lt;br /&gt;&lt;br /&gt;localhost:1623&lt;br /&gt;&lt;br /&gt;A eso le concatenamos lo que creamos necesario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-803068218556589852?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/803068218556589852/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=803068218556589852' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/803068218556589852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/803068218556589852'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/08/obtener-la-url-de-tu-pagina-web-con-asp.html' title='Obtener la url de tu página web con ASP'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-3928768865685954699</id><published>2009-08-10T02:58:00.001-07:00</published><updated>2009-08-10T03:01:10.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Carácter de escape para las comillas simples en T-SQL</title><content type='html'>Esta mañana me ha surgido la necesidad de generarme codigo mediante una select y precisaba que esta select generara otras selects, tras un ratillo de busqueda he encontrado que para generar unas comillas simple basta con poner dos.&lt;br /&gt;&lt;br /&gt;Ej:&lt;br /&gt;select 'insert into modulo (nombre, ruta) values (''' + nombre + ''', ''' + ruta +''')' from Modulo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-3928768865685954699?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/3928768865685954699/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=3928768865685954699' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/3928768865685954699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/3928768865685954699'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/08/caracter-de-escape-para-las-comillas.html' title='Carácter de escape para las comillas simples en T-SQL'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-5823804988871802743</id><published>2009-07-26T12:21:00.000-07:00</published><updated>2009-07-26T12:28:39.360-07:00</updated><title type='text'>Alternar bloques de comentarios en C#</title><content type='html'>Magnífico truco de mi compañero &lt;a href="http://sharepointeando.blogspot.com/"&gt;A.J. Busquiel&lt;/a&gt; el que aquí publico, una forma de alternar dos bloques de comantarios para, cuando andamos haciendo pruebas comentando y descomentando trozos de codigo:&lt;br /&gt;&lt;br /&gt;//*&lt;br /&gt;    Bloque de código 1&lt;br /&gt;/*/&lt;br /&gt;    Bloque de código 2&lt;br /&gt;/**/&lt;br /&gt;&lt;br /&gt;Probemos en Visual Studio que quitando la primera barra (/) comentamos el primer bloque de código y dejandolo puesto comentemos el bloque 2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-5823804988871802743?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/5823804988871802743/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=5823804988871802743' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5823804988871802743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5823804988871802743'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/alternar-bloques-de-comentarios-en-c.html' title='Alternar bloques de comentarios en C#'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-200061803563557621</id><published>2009-07-22T07:43:00.000-07:00</published><updated>2009-07-22T07:52:36.672-07:00</updated><title type='text'>Silverlight con parametros</title><content type='html'>Esta mañana tenia la necesidad de compartir un pequeño control de Silverlight en varias paginas y tenia que mostrar secciones distintas según la pagina que la llamaba.&lt;br /&gt;&lt;br /&gt;La primera idea que tuve (y esa he aplicado) es pasarle parametros al silverlight mediante su propiedad InitParametrers tal como esto:&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:Silverlight ID="Silverlight1" runat="server" Source="~/ClientBin/ComponentesSilverlight.xap" MinimuVersion="2.0.31005.0" Width="100%" Height="100%" InitParameters="pantalla=enlaces" /&gt;&lt;br /&gt;&lt;br /&gt;Con esta llamada al elemento Silverlight podremos obtener los parametros en el Startup de  App.aspx.cs tal como sigue:&lt;br /&gt;&lt;br /&gt;private void Application_Startup(object sender, StartupEventArgs e)&lt;br /&gt;{&lt;br /&gt;string pantalla = string.Empty;&lt;br /&gt;if(e.InitParams.Keys.Contains("pantalla")) pantalla = e.InitParams["pantalla"];&lt;br /&gt;this.RootVisual = new Page(pantalla);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Y pos supuesto tendremos que cambiar el constructor de la clase Page del componente Silverlight con el/los parametros que vamos a utilizar por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private string _pantalla;&lt;br /&gt;&lt;br /&gt;public Page(string pantalla)&lt;br /&gt;{&lt;br /&gt;InitializeComponent();&lt;br /&gt;_pantalla = pantalla;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Luego podremos usar la variable privada _pantalla para lo que pretendamos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-200061803563557621?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/200061803563557621/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=200061803563557621' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/200061803563557621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/200061803563557621'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/silverlight-con-parametros.html' title='Silverlight con parametros'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-8890588604458014776</id><published>2009-07-21T09:26:00.000-07:00</published><updated>2009-07-21T09:38:36.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funciones'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Update para rempllazar contenido en tablas de una bd</title><content type='html'>Hoy tenía la necesidad de hacer unos cambios en los datos de una BD para hacer una demo y hacerla con datos reales. He googleado un poco y rapidamente he encontrado la función replace() de T-SQL paar este fin y me ha ido de maravilla. Este es el UPDATE que he utilizado para ir cambiando ciertas palabras de ciertas columnas de mi BD, espero que le sirva a alguien además de a mi:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;update noticia set contenido = replace(contenido, 'Florentino', 'Deportivo') where contenido like '%Florentino%'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Documentación MSDN:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/ms186862.aspx"&gt;http://msdn.microsoft.com/es-es/library/ms186862.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-8890588604458014776?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/8890588604458014776/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=8890588604458014776' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/8890588604458014776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/8890588604458014776'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/update-para-rempllazar-contenido-en.html' title='Update para rempllazar contenido en tablas de una bd'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-5244841265894707925</id><published>2009-07-08T01:55:00.000-07:00</published><updated>2009-07-08T01:59:34.122-07:00</updated><title type='text'>Operadores ternarios en C#</title><content type='html'>¿Conociais el operador &lt;strong&gt;&lt;em&gt;??&lt;/em&gt;&lt;/strong&gt; de c#?, yo no y creo que me va a encantar.&lt;br /&gt;&lt;br /&gt;¿Conociais el operador &lt;strong&gt;&lt;em&gt;?:&lt;/em&gt;&lt;/strong&gt;?&lt;br /&gt;&lt;br /&gt;Pues bien, la mejor explicación, un ejemplo:&lt;br /&gt;&lt;br /&gt;String cadena = null;&lt;br /&gt;MessageBox.Show(cadena??"(null)");&lt;br /&gt;MessageBox.Show(cadena==null?"(null)":cadena);&lt;br /&gt;&lt;br /&gt;Los dos MessageBox son equivalentes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-5244841265894707925?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/5244841265894707925/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=5244841265894707925' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5244841265894707925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5244841265894707925'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/operadores-ternarios-en-c.html' title='Operadores ternarios en C#'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-2822670062592537254</id><published>2009-07-07T04:01:00.000-07:00</published><updated>2009-07-07T04:10:33.215-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Obtener instancias de SQLServer 2000 y 2005</title><content type='html'>.Net Framework nos facilita la tarea de obtener las instancias en la red de SQLServer 2000-2005 mediante una unica linea de codigo coomo sigue:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;System.Data.DataTable dtServidores = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con esto obtendremos un registro por cada instancia de SQL server con cuatro columnas:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;ServerName: Nombre del servidor.&lt;/li&gt;&lt;li&gt;InstanceName: Nombre de la instancia del servidor. En el caso de tratarse de la instancia predeterminada estará en blanco.&lt;/li&gt;&lt;li&gt;IsClustered: Yes o No segun la instancia forme parte de un cluster de servidores.&lt;/li&gt;&lt;li&gt;Version: Versión del servidor.(8.0.x, para SQL2000 y 9.00.x para SQL 2005)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-2822670062592537254?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/2822670062592537254/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=2822670062592537254' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/2822670062592537254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/2822670062592537254'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/obtener-instancias-de-sqlserver-2000-y.html' title='Obtener instancias de SQLServer 2000 y 2005'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-5706001174043420496</id><published>2009-07-06T03:49:00.000-07:00</published><updated>2009-07-06T03:55:33.239-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Obtener la estructura de una tabla con T-SQL</title><content type='html'>Si queremos ver la estructura de una tabla con una select, basta con consultar el catálogo. Hay una vista en information_schema.columns que tiene informacion de las columnas de todas las tablas de la BD, bastaría con filtrar por nombre de tabla con la siguiente Select:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT * FROM information_schema.columns WHERE table_name = 'facturascompra'&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;Con este ejemplo obtendremos los campos de la tabla facturascompra&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-5706001174043420496?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/5706001174043420496/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=5706001174043420496' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5706001174043420496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5706001174043420496'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/obtener-la-estructura-de-una-tabla-con.html' title='Obtener la estructura de una tabla con T-SQL'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-7448219170953220093</id><published>2009-07-02T04:18:00.000-07:00</published><updated>2009-07-02T04:26:26.279-07:00</updated><title type='text'>Insertar código XML en un HTML</title><content type='html'>En la publicación del anterior post me surgió el problema, como a muchos otros (supongo), que ya habrán solucionado, de insertar codigo XML dentro de mi post. Pues bien, la única forma de solucionarlo que encontré fué utilizar los caracteres de escape de HTML de los caracteres especiales como &lt;, &gt;, / ...&lt;br /&gt;&lt;br /&gt;Desde esta web se puede obtener la cadena que hay que copiar en el post para mostrar un xml en el:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.simplebits.com/cgi-bin/simplecode.pl?mode=process"&gt;http://www.simplebits.com/cgi-bin/simplecode.pl?mode=process&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esta es una tabla con otros caracteres especiales de HTML:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th width="59"&gt;Carácter&lt;/th&gt;&lt;th width="60"&gt;Código&lt;/th&gt;&lt;th&gt;Carácter&lt;/th&gt;&lt;th&gt;Código&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;&lt;/td&gt;&lt;td&gt;&amp;amp;lt;&lt;/td&gt;&lt;td&gt;±&lt;/td&gt;&lt;td&gt;&amp;amp;plusmn;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;amp;gt;&lt;/td&gt;&lt;td&gt;·&lt;/td&gt;&lt;td&gt;&amp;amp;middot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;¡&lt;/td&gt;&lt;td&gt;&amp;amp;iexcl;&lt;/td&gt;&lt;td&gt;×&lt;/td&gt;&lt;td&gt;&amp;amp;times;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;¿&lt;/td&gt;&lt;td&gt;&amp;amp;iquest;&lt;/td&gt;&lt;td&gt;÷&lt;/td&gt;&lt;td&gt;&amp;amp;divide;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;©&lt;/td&gt;&lt;td&gt;&amp;amp;copy;&lt;/td&gt;&lt;td&gt;¼&lt;/td&gt;&lt;td&gt;&amp;amp;frac14;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;®&lt;/td&gt;&lt;td&gt;&amp;amp;reg;&lt;/td&gt;&lt;td&gt;½&lt;/td&gt;&lt;td&gt;&amp;amp;frac12;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;™&lt;/td&gt;&lt;td&gt;&amp;amp;trade;&lt;/td&gt;&lt;td&gt;¾&lt;/td&gt;&lt;td&gt;&amp;amp;frac34;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;¢&lt;/td&gt;&lt;td&gt;&amp;amp;cent;&lt;/td&gt;&lt;td&gt;¹&lt;/td&gt;&lt;td&gt;&amp;amp;sup1;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;£&lt;/td&gt;&lt;td&gt;&amp;amp;pound;&lt;/td&gt;&lt;td&gt;²&lt;/td&gt;&lt;td&gt;&amp;amp;sup2;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;¥&lt;/td&gt;&lt;td&gt;&amp;amp;yen;&lt;/td&gt;&lt;td&gt;³&lt;/td&gt;&lt;td&gt;&amp;amp;sup3;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;€&lt;/td&gt;&lt;td&gt;&amp;amp;euro;&lt;/td&gt;&lt;td&gt;‰&lt;/td&gt;&lt;td&gt;&amp;amp;permil;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ª&lt;/td&gt;&lt;td&gt;&amp;amp;ordf;&lt;/td&gt;&lt;td&gt;∑&lt;/td&gt;&lt;td&gt;&amp;amp;sum;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;º&lt;/td&gt;&lt;td&gt;&amp;amp;ordm;&lt;/td&gt;&lt;td&gt;∏&lt;/td&gt;&lt;td&gt;&amp;amp;prod;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Á&lt;/td&gt;&lt;td&gt;&amp;amp;Aacute;&lt;/td&gt;&lt;td&gt;√&lt;/td&gt;&lt;td&gt;&amp;amp;radic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;á&lt;/td&gt;&lt;td&gt;&amp;amp;aacute;&lt;/td&gt;&lt;td&gt;∞&lt;/td&gt;&lt;td&gt;&amp;amp;infin;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;É&lt;/td&gt;&lt;td&gt;&amp;amp;Eacute;&lt;/td&gt;&lt;td&gt;≈&lt;/td&gt;&lt;td&gt;&amp;amp;asymp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;é&lt;/td&gt;&lt;td&gt;&amp;amp;eacute;&lt;/td&gt;&lt;td&gt;≠&lt;/td&gt;&lt;td&gt;&amp;amp;ne;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Í&lt;/td&gt;&lt;td&gt;&amp;amp;Iacute;&lt;/td&gt;&lt;td&gt;≡&lt;/td&gt;&lt;td&gt;&amp;amp;equiv;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;í&lt;/td&gt;&lt;td&gt;&amp;amp;iacute;&lt;/td&gt;&lt;td&gt;≤&lt;/td&gt;&lt;td&gt;&amp;amp;le;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ó&lt;/td&gt;&lt;td&gt;&amp;amp;Oacute;&lt;/td&gt;&lt;td&gt;≥&lt;/td&gt;&lt;td&gt;&amp;amp;ge;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ó&lt;/td&gt;&lt;td&gt;&amp;amp;oacute;&lt;/td&gt;&lt;td&gt;Ñ&lt;/td&gt;&lt;td&gt;&amp;amp;Ntilde;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ú&lt;/td&gt;&lt;td&gt;&amp;amp;Uacute;&lt;/td&gt;&lt;td&gt;ñ&lt;/td&gt;&lt;td&gt;&amp;amp;ntilde;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ú&lt;/td&gt;&lt;td&gt;&amp;amp;uacute;&lt;/td&gt;&lt;td&gt;Ç&lt;/td&gt;&lt;td&gt;&amp;amp;Ccedil;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ü&lt;/td&gt;&lt;td&gt;&amp;amp;Uuml;&lt;/td&gt;&lt;td&gt;ç&lt;/td&gt;&lt;td&gt;&amp;amp;ccedil;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ü&lt;/td&gt;&lt;td&gt;&amp;amp;uuml;&lt;/td&gt;&lt;td&gt;˜&lt;/td&gt;&lt;td&gt;&amp;amp;tilde&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;amp;&lt;/td&gt;&lt;td&gt;&amp;amp;amp;&lt;/td&gt;&lt;td&gt;π&lt;/td&gt;&lt;td&gt;&amp;amp;pi;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-7448219170953220093?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/7448219170953220093/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=7448219170953220093' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7448219170953220093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7448219170953220093'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/insertar-codigo-xml-en-un-html.html' title='Insertar código XML en un HTML'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-6565573311216972834</id><published>2009-07-02T03:35:00.000-07:00</published><updated>2009-07-02T23:19:00.559-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Acceso mediante silverlight a un Servicio Web de otro dominio</title><content type='html'>Por razones de seguridad, un servicio web no se puede consumir desde Silverlight sin que se especifiquen los permisos en un archivo xml llamado clientaccesspolicy.xml.&lt;br /&gt;&lt;br /&gt;Un ejemplo basico de este archivo que permite al acceso desde cualquier dominio a un servicio web sería este:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;access-policy&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cross-domain-access&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;policy&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;allow-from http-request-headers="*"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;domain uri="*"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/allow-from&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;grant-to&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;resource path="/" include-subpaths="true"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/grant-to&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/policy&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/cross-domain-access&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/access-policy&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tambien puede ser usado el archivo que usa Flash, crossdomain.xml, un ejemplo del cual seria:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;allow-http-request-headers-from domain="*" headers="*"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Estos archivos deben de estar accesibles por el cliente Silverlight en la raiz de la web donde se alojan los servicios, ya que lo primero que hará Silverlight será descargase uno de estos archivos para comprobar la seguridad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-6565573311216972834?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/6565573311216972834/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=6565573311216972834' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6565573311216972834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6565573311216972834'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/07/acceso-mediante-silverlight-un-servicio.html' title='Acceso mediante silverlight a un Servicio Web de otro dominio'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-225684668908562285</id><published>2009-04-14T07:44:00.000-07:00</published><updated>2009-04-14T07:47:31.940-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Escritorio 3D para Windows</title><content type='html'>Hay una herramienta que te instala un escritorio 3D en tu sistema operativo con el que parece que estés trabajando en el propio escritorio de tu casa, con objetos reales.&lt;br /&gt;&lt;br /&gt;Mirad el vídeo y flipad. Es en inglés pero algo se entiende.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eqcmPJ-oVL0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/eqcmPJ-oVL0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Este es el enlace de la aplicación:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bumptop.com/"&gt;http://bumptop.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-225684668908562285?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/225684668908562285/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=225684668908562285' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/225684668908562285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/225684668908562285'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/04/escritorio-3d-para-windows.html' title='Escritorio 3D para Windows'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4609664156963362968</id><published>2009-04-09T08:57:00.000-07:00</published><updated>2009-04-09T09:04:18.367-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Instalacion desatendida'/><title type='text'>Instalación desatendia de Microsoft SQL Server 2005</title><content type='html'>Para iniciar una instalacion desatendida se puede usar la siguiente linea de comandos:&lt;br /&gt;&lt;br /&gt;Setup.exe /qn /settings [ruta del archivo.ini]&lt;rutadelarchivo.ini&gt;&lt;br /&gt;&lt;br /&gt;El archivo ini al que se hace referencia contine las opciones de instalación, con esta linea conseguiremos que se realice una instalación tal y como la definimos en el archivo ini sin ninguna intervencion del usuario.&lt;br /&gt;&lt;br /&gt;El DVD de instalación de SQL Server 2005 facilita una plantilla de este archivo ini, en mi caso lo encontrè en la ruta D:\SQL Server x86\Tools\Template.ini&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4609664156963362968?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4609664156963362968/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4609664156963362968' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4609664156963362968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4609664156963362968'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/04/instalacion-desatendia-de-microsoft-sql.html' title='Instalación desatendia de Microsoft SQL Server 2005'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-5133802751060901579</id><published>2009-03-27T12:48:00.000-07:00</published><updated>2009-03-27T12:56:28.901-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='transacciones'/><category scheme='http://www.blogger.com/atom/ns#' term='TRAN'/><title type='text'>Transacciones en SQL Server</title><content type='html'>Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms188929.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;BEGIN TRY&lt;br /&gt;BEGIN TRAN&lt;br /&gt;INSERT INTO CLIENTES (ID) VALUES ('tabla1')&lt;br /&gt;INSERT INTO CLIENTES (ID) VALUES ('tabla2')&lt;br /&gt;INSERT INTO CLIENTES (ID) VALUES ('tabla3')&lt;br /&gt;COMMIT TRAN&lt;br /&gt;END TRY&lt;br /&gt;BEGIN CATCH&lt;br /&gt;ROLLBACK TRAN&lt;br /&gt;SELECT ERROR_NUMBER(), ERROR_MESSAGE()&lt;br /&gt;END CATCH&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-5133802751060901579?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/5133802751060901579/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=5133802751060901579' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5133802751060901579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5133802751060901579'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/transacciones-en-sql-server.html' title='Transacciones en SQL Server'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4851914006538825764</id><published>2009-03-27T12:28:00.000-07:00</published><updated>2009-03-27T12:47:32.458-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TRY'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='CATCH'/><title type='text'>Manejo de excepciones</title><content type='html'>En SQL Server existen los bloques TRY-CATH para el control de excepciones.&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms175976.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;BEGIN TRY&lt;br /&gt;INSERT INTO CLIENTES (ID) VALUES ('tabla')&lt;br /&gt;END TRY&lt;br /&gt;BEGIN CATCH&lt;br /&gt;SELECT ERROR_NUMBER(), ERROR_MESSAGE()&lt;br /&gt;END CATCH&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4851914006538825764?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4851914006538825764/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4851914006538825764' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4851914006538825764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4851914006538825764'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/manejo-de-excepciones.html' title='Manejo de excepciones'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-1288306565484924647</id><published>2009-03-27T01:54:00.000-07:00</published><updated>2009-03-27T03:30:35.596-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>El nuevo HTML5</title><content type='html'>El HTML5 es una nueva versión del popular lenguaje HTML, que se empezó a desarrollar en 2004 en colaboración entre     &lt;a href="http://www.w3.org/html/"&gt;&lt;abbr title="W3C HTML Working Group"&gt;W3C HTML    WG&lt;/abbr&gt;&lt;/a&gt; y  &lt;a href="http://www.whatwg.org/"&gt;&lt;abbr title="Web Hypertext Application Technology Working Group"&gt;WHATWG&lt;/abbr&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lo más destacable de esta nueva versión son las nuevas etiquetas que se introducen para darle un aspecto más lógico y entendible al código, y como se trata de un estándar, que pueda ser interpretado casi por igual por los navegadores más importantes, Fire Fox, Internet Explorer, Safari y Opera. No comentan nada del Google Chrome, pero es lógico porque es todavía muy nuevo y no se ha difundido lo suficiente, aunque no planteará problemas en principio, ya que lo visto hasta el momento es que interpreta las páginas de forma muy parecida a Safari o Fire Fox.&lt;br /&gt;&lt;br /&gt;Con estas nuevas etiquetas el uso de los difundidos &lt;span style="font-style: italic;font-family:arial;" &gt;div&lt;/span&gt; se reducirá considerablemente, ya que sustituiremos los típicos &lt;span style="font-style: italic;font-family:arial;" &gt;&lt; id="header"&gt;&lt;/span&gt; y &lt;span style="font-style: italic;font-family:arial;" &gt;&lt; id="footer"&gt;&lt;/span&gt; por etiquetas &lt;span style="font-style: italic;font-family:arial;" &gt;&amp;lt;header&amp;gt;&lt;/span&gt; y &lt;span style="font-style: italic;font-family:arial;" &gt;&amp;lt;footer&amp;gt;&lt;/span&gt;. Con esto se consigue lo comentado anteriormente, un aspecto más fácilmente entendible del código de cara a un futuro mantenimeinto.&lt;br /&gt;&lt;br /&gt;Os muestro un ejemplo de estos cambios:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.alistapart.com/d/previewofhtml5/structure-div.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.alistapart.com/d/previewofhtml5/structure-div.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.alistapart.com/d/previewofhtml5/structure-html5.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.alistapart.com/d/previewofhtml5/structure-html5.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;También tendremos etiquetas nuevas para vídeo y audio, con sus correspondientes atributos.&lt;br /&gt;&lt;br /&gt;En &lt;a href="http://www.alistapart.com/articles/previewofhtml5"&gt;este enlace&lt;/a&gt; se pueden ver otros cambios de la nueva versión.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-1288306565484924647?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/1288306565484924647/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=1288306565484924647' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1288306565484924647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1288306565484924647'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/el-nuevo-html5.html' title='El nuevo HTML5'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-6712224709819313304</id><published>2009-03-26T15:19:00.000-07:00</published><updated>2009-03-27T12:25:26.265-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCTION'/><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Creacion de funciones</title><content type='html'>Son rutinas que constan de una o mas instrucciones que sirven para encapsular codigo y poder reutilizarlo, puede tomar 0 o más parámetros de entrada y devuelve un valor escalar o una tabla. Los parámetros de entrada pueden ser de cualquier tipo excepto timestamp, cursor o table.&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://technet.microsoft.com/es-es/library/ms186755.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;Creación de una función escalar:&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION BDs(@COLLATION_NAME VARCHAR(50) = NULL) RETURNS INT&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;DECLARE @RET INT&lt;br /&gt;IF @COLLATION_NAME IS NULL&lt;br /&gt;SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME IS NULL)&lt;br /&gt;ELSE&lt;br /&gt;SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME = @COLLATION_NAME)&lt;br /&gt;RETURN @RET&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;Creación de una funcion con valores de tabla en linea:&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION BDs(@COLLATION VARCHAR(50)) RETURNS TABLE&lt;br /&gt;AS&lt;br /&gt;RETURN(SELECT * FROM SYS.DATABASES WHERE &lt;a href="mailto:COLLATION_NAME=@COLLATION"&gt;COLLATION_NAME=@COLLATION&lt;/a&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;Creación de una función con valores de tabla de varias instrucciones:&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION BDs(@COLLATION VARCHAR(50))&lt;br /&gt;RETURNS @RET TABLE (NAME VARCHAR(50) PRIMARY KEY)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;IF(@COLLATION='')&lt;br /&gt;BEGIN &lt;br /&gt;INSERT @RET &lt;br /&gt;SELECT [NAME] FROM SYS.DATABASES WHERE COLLATION_NAME IS NULL&lt;br /&gt;END&lt;br /&gt;ELSE&lt;br /&gt;BEGIN &lt;br /&gt;INSERT @RET &lt;br /&gt;SELECT [NAME] FROM SYS.DATABASES WHERE COLLATION_NAME = @COLLATION&lt;br /&gt;END&lt;br /&gt; RETURN&lt;br /&gt;END&lt;br /&gt;GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-6712224709819313304?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/6712224709819313304/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=6712224709819313304' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6712224709819313304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6712224709819313304'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/creacion-de-funciones.html' title='Creacion de funciones'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-1189763551679294970</id><published>2009-03-26T14:35:00.000-07:00</published><updated>2009-03-26T15:04:06.645-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='PROCEDURE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Procedimientos almacendados parametrizados</title><content type='html'>Los procedimientos almacenados pueden tener parámetros de entrada y de salida para comunicarse con el programa que los llama.&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms187926.aspx"&gt;MSDN &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;CREATE PROCEDURE BDs&lt;br /&gt;(@COLLATION_NAME VARCHAR(50) = NULL,&lt;br /&gt;@RET INT = 0 OUTPUT)&lt;br /&gt;AS&lt;br /&gt;IF @COLLATION_NAME IS NULL&lt;br /&gt;BEGIN&lt;br /&gt;SELECT * FROM sys.databases WHERE COLLATION_NAME IS NULL&lt;br /&gt;SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME IS NULL)&lt;br /&gt;END&lt;br /&gt;ELSE&lt;br /&gt;BEGIN&lt;br /&gt;SELECT * FROM sys.databases WHERE COLLATION_NAME = @COLLATION_NAME&lt;br /&gt;SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME = @COLLATION_NAME)&lt;br /&gt;END&lt;br /&gt;RETURN @RET + 1&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;Se crea un procedimiento almacenado que acepta un parámetro para filtrar la lista de bases de datos por el collation y retorna en un segundo parametro la cantidad de bases de datos con ese collation, como ejemplo retorna la cantidad de bases de datos mas 1 como valor de retorno.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-1189763551679294970?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/1189763551679294970/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=1189763551679294970' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1189763551679294970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1189763551679294970'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/procedimientos-almacendados_26.html' title='Procedimientos almacendados parametrizados'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-5520787835048500317</id><published>2009-03-23T14:53:00.000-07:00</published><updated>2009-03-23T15:42:58.846-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALTER'/><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='PROCEDURE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='DROP'/><title type='text'>Procedimientos almacendados</title><content type='html'>Un procedimiento almacenado es una colección de instrucciones con nombre de sentencias T-Sql.&lt;br /&gt;Ventajas:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Encapsula la funcionalidad de negocio y crea lógica de aplicación reutilizable.&lt;/li&gt;&lt;li&gt;Evita la exposición de la estructura de la BD a los usuarios.&lt;/li&gt;&lt;li&gt;Proporciona mecanismos de seguridad (acceso a tablas a las que no se tiene acceso real a traves de los procedimientos almacenados.)&lt;/li&gt;&lt;li&gt;Mejorar el rendimiento&lt;/li&gt;&lt;li&gt;Reducir tráfico en la red&lt;/li&gt;&lt;li&gt;Reducir vulneravilidad a ataques mediante instrucciones SQL incrustadas en los parámetros.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Creación de procedimientos almacenados.&lt;/p&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms187926.aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;&lt;p&gt;CREATE PROCEDURE BDs&lt;/p&gt;&lt;p&gt;AS &lt;/p&gt;&lt;p&gt;SELECT * FROM sys.databases&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;Modificación de procedimientos almacenados:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms189762.aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;&lt;p&gt;ALTER PROCEDURE BDs&lt;/p&gt;&lt;p&gt;AS &lt;/p&gt;&lt;p&gt;SELECT * FROM sys.databases ORDER BY name&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;Ejecución de un procedimiento almacenado:&lt;/p&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/ms188332.aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;&lt;p&gt;Exec BDs&lt;/p&gt;&lt;p&gt;Eliminacion de procedimientos almacendos:&lt;/p&gt;&lt;p&gt;Antes de borrar cualquier procedimiento almacenado es recomendable ejecutar el procedimiento almacenado de la BD master sp_depends pare resolver si existe algun procedimiento que dempenda de este:&lt;/p&gt;&lt;p&gt;EXEC sp_depends @objname = N'BDs'&lt;/p&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms174969.aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;&lt;p&gt;DROP PROC BDs&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-5520787835048500317?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/5520787835048500317/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=5520787835048500317' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5520787835048500317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5520787835048500317'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/procedimientos-almacendados.html' title='Procedimientos almacendados'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-3892400321537079506</id><published>2009-03-10T13:51:00.000-07:00</published><updated>2009-03-10T16:10:34.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Fragmentación de XML mediante OPENXML</title><content type='html'>&lt;div&gt;Fragmentar XML es el proceso de transformar datos en formato XML a filas.&lt;br /&gt;El proceso de fragmentación se realiza mediante los siguientes pasos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Obtención de el documento XML.&lt;/li&gt;&lt;li&gt;Generación de una representación interna de arbol, mendiante el procedimiento almacenado &lt;strong&gt;sp_xml_preparedocument.&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Recuperar un conjunto de filas del arbol mediante una sentencia &lt;strong&gt;XPath.&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Procesar los datos del conjunto de filas temporal generados por OPENXML para insertar, seleccionar, eliminar o modificar filas en una tabla permanente.&lt;/li&gt;&lt;li&gt;Destruir el arbol interno cuando ya no es necesario con el procedimiento almacenado &lt;strong&gt;sp_xml_removedocument&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/aa276847(SQL.80).aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;DECLARE @dxml varchar(1000);&lt;br /&gt;DECLARE @idoc integer;&lt;br /&gt;SET @dxml = '&lt;clientes&gt;&lt;cliente id="1" telefono="666554433" direccion="Avenida Mayor" nombre="Pepe Martinez Gonzalez" numero="43000001"&gt;&lt;br /&gt;&lt;cliente id="2" telefono="666443311" direccion="Calle Menor" nombre="Pepa Flores Gonzalez" numero="43000002"&gt;&lt;/clientes&gt;';&lt;br /&gt;EXEC sp_xml_preparedocument @idoc OUTPUT, @dxml;&lt;br /&gt;SELECT * FROM OPENXML(@idoc, '//CLIENTES/CLIENTE') WITH (id INT, numero VARCHAR(50), nombre VARCHAR(50), direccion VARCHAR(50), telefono VARCHAR(50))&lt;br /&gt;EXEC sp_xml_removedocument @idoc;&lt;br /&gt;GO&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-3892400321537079506?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/3892400321537079506/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=3892400321537079506' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/3892400321537079506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/3892400321537079506'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/fragmentacion-de-xml-mediante-openxml.html' title='Fragmentación de XML mediante OPENXML'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-2126496357281514485</id><published>2009-03-10T13:05:00.001-07:00</published><updated>2009-03-10T13:36:32.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SELECT'/><category scheme='http://www.blogger.com/atom/ns#' term='AUTO'/><category scheme='http://www.blogger.com/atom/ns#' term='RAW'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='PATH'/><category scheme='http://www.blogger.com/atom/ns#' term='EXPLICIT'/><title type='text'>Recuperacion de XML mediante FOR XML</title><content type='html'>Se puede usar la clausula FOR XML en las sentencias SELECT de Transact-SQL para recuperar los datos en formato XML en lugar de filas y columnas.&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms190922.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;SELECT * FROM CLIENTES FOR XML RAW&lt;br /&gt;GO&lt;br /&gt;SELECT * FROM CLIENTES FOR XML AUTO&lt;br /&gt;GO&lt;br /&gt;SELECT 1 AS TAG,&lt;br /&gt;NULL AS PARENT,&lt;br /&gt;ID AS [CLIENTE!1!ID],&lt;br /&gt;NUMERO AS [CLIENTE!1!NUMERO],&lt;br /&gt;NOMBRE AS [CLIENTE!1!NOMBRE!ELEMENT],&lt;br /&gt;DIRECCION AS [CLIENTE!1!DIRECCION!ELEMENT],&lt;br /&gt;TELEFONO AS [CLIENTE!1!TELEFONO!ELEMENT]&lt;br /&gt;FROM CLIENTES FOR XML EXPLICIT&lt;br /&gt;GO&lt;br /&gt;SELECT&lt;br /&gt;ID "@ID",&lt;br /&gt;NUMERO "@NUMERO",&lt;br /&gt;NOMBRE "NOMBRE",&lt;br /&gt;DIRECCION "DIRECCION",&lt;br /&gt;TELEFONO "TELEFONO"&lt;br /&gt;FROM CLIENTES FOR XML PATH('CLIENTE')&lt;br /&gt;GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-2126496357281514485?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/2126496357281514485/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=2126496357281514485' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/2126496357281514485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/2126496357281514485'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/recuperacion-de-xml-mediante-for-xml.html' title='Recuperacion de XML mediante FOR XML'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4371843457184246501</id><published>2009-03-08T14:10:00.000-07:00</published><updated>2009-03-08T14:28:06.304-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PARTITION'/><category scheme='http://www.blogger.com/atom/ns#' term='FUNCTION'/><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SCHEME'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Creación de tablas con particiones</title><content type='html'>Para crear una tabla con particiones tendremos que crear una función de partición y un esquema de partición.&lt;br /&gt;&lt;br /&gt;Para crear una función de partición usaremos la instrucción CREATE PARTITION FUNCTION:&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/ms187802.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;CREATE PARTITION FUNCTION pf_FechaNacimiento (datetime)&lt;br /&gt;AS RANGE RIGHT&lt;br /&gt;FOR VALUES('01/01/2000', '01/01/2005', '01/01/2010', '01/01/2015', '01/01/2020')&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;El siguente paso sería crear un esquema de partición con CREATE PARTITION SCHEME&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/ms179854.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;CREATE PARTITION SCHEME ps_FechaNamimiento&lt;br /&gt;AS PARTITION pf_FechaNacimiento&lt;br /&gt;TO (fg1, fg2, fg3, fg4, fg5, fg6, fg7)&lt;br /&gt;&lt;br /&gt;Con esto habremos creado una funcion de particion con 6 rangos y un esquema de particiones con 7 grupos de ficheros, el séptimo sería el grupo de archivos SIGUIENTE que se utilizaría en el caso de crear una partición mas a la función de partición.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4371843457184246501?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4371843457184246501/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4371843457184246501' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4371843457184246501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4371843457184246501'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/creacion-de-tablas-con-particiones.html' title='Creación de tablas con particiones'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-2362844461742823402</id><published>2009-03-08T13:31:00.000-07:00</published><updated>2009-03-08T14:09:50.351-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timestamp'/><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='TABLE'/><title type='text'>Creación de tablas</title><content type='html'>Al crear una tabla de base de datos hay que indicar el nombre de la tabla, los nombre de las columnas, sus tipos de datos, la capacidad de aceptar o no valores null, la intercalación de los datos, etc.&lt;br /&gt;&lt;br /&gt;La intercalación es el criterio de ordenación de los datos en el campo. Si no se especifica intercalación se utilizará la intercalación definida por defecto en la BD.&lt;br /&gt;&lt;br /&gt;Existen tipos de columnas especiales:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;COLUMNAS CALCULADAS: Es una columna virtual, que no se almacena en BD. SQL Server utiliza una formula creada para calcularla.&lt;/li&gt;&lt;li&gt;COLUMNAS DE IDENTIDAD: Se crean con la propiedad identity. Contiene un valor secuencial generado automaticamente por Sql Server. Usarlas como claves primarias puede mejorar el rendimiento y los costes de mantenimiento de la BD.&lt;/li&gt;&lt;li&gt;COLUMNAS TIMESTAMP: Las columnas timestamp tienen una marca de tiempo generado automáticamente.&lt;/li&gt;&lt;li&gt;COLUMNAS UNIQUEIDENTIFIER: se definen como uniqueidentifier. Se almacenan GUID que son udentigicadores unicos globales. Se puede generar un GUID con la función NEWID de T-SQL.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/aa258255(SQL.80).aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;CREATE TABLE dbo.CONTACTO(&lt;br /&gt;id_contacto int IDENTITY NOT NULL,&lt;br /&gt;Nombre varchar(50) NOT NULL,&lt;br /&gt;Apellidos varchar(100) NULL,&lt;br /&gt;Telefono varchar(12) NULL,&lt;br /&gt;Email varchar(50) NULL,&lt;br /&gt;Web varchar(256) NULL,&lt;br /&gt;timestamp )&lt;br /&gt;GO&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-2362844461742823402?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/2362844461742823402/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=2362844461742823402' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/2362844461742823402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/2362844461742823402'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/creacion-de-tablas.html' title='Creación de tablas'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4495036529045192937</id><published>2009-03-07T14:55:00.000-08:00</published><updated>2009-03-08T13:25:31.589-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='TYPE'/><title type='text'>Tipos de datos de Alias</title><content type='html'>Son tipos de datos personalizados que nos permiten guardar coherencia de los datos cuando utilizamos los mismos elementos en tablas distintas de la base de datos.&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms175007.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;CREATE TYPE dbo.Nombre FROM varchar(50) NOT NULL&lt;br /&gt;&lt;br /&gt;Hay que tener en cuenta de que no existe la instruccion ALTER TYPE por los que para cambiar un tipo habra que usar la instruccion DROP TYPE y previamente habra que quitarla de todas las tablas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4495036529045192937?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4495036529045192937/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4495036529045192937' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4495036529045192937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4495036529045192937'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/tipos-de-datos-de-alias.html' title='Tipos de datos de Alias'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-802991530918204072</id><published>2009-03-07T14:47:00.000-08:00</published><updated>2009-03-07T14:54:19.932-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SNAPSHOT'/><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='DATABASE'/><title type='text'>Instantaneas de bases de datos</title><content type='html'>Una instantanea de una base de datos es una vista estática de solo lectura de una base de datos&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/ms176061.aspx"&gt;MSDN &lt;/a&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;CREATE DATABASE JABASS ON&lt;br /&gt;( NAME = JABASS,&lt;br /&gt;FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\JABA.ss')&lt;br /&gt;AS SNAPSHOT OF JABA;&lt;br /&gt;GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-802991530918204072?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/802991530918204072/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=802991530918204072' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/802991530918204072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/802991530918204072'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/instantaneas-de-bases-de-datos.html' title='Instantaneas de bases de datos'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4048247612953989423</id><published>2009-03-07T14:34:00.000-08:00</published><updated>2009-04-06T13:52:13.150-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SCHEMA'/><title type='text'>Creacion de esquemas de bases de datos</title><content type='html'>Los esquemas nos sirven para organizar las bases de datos tal y como los namespaces nos permiten organizar nuestras bibliotecas de clases cuando programamos.&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms189462.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;USE DATOS&lt;br /&gt;GO&lt;br /&gt;CREATE SCHEMA [Marketing]&lt;br /&gt;GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4048247612953989423?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4048247612953989423/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4048247612953989423' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4048247612953989423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4048247612953989423'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/creacion-de-esquemas-de-bases-de-datos.html' title='Creacion de esquemas de bases de datos'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-7164460375119506921</id><published>2009-03-07T14:15:00.000-08:00</published><updated>2009-03-07T14:33:25.470-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FILEGROUP'/><category scheme='http://www.blogger.com/atom/ns#' term='ALTER'/><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='DATABASE'/><title type='text'>Creación de grupos de archivos</title><content type='html'>Los grupo de archivos nos sirven para controlar la posición física de los objetos en la base de datos, lo cual nos permitira mejorar el rendimiento de la base de datos.&lt;br /&gt;Normalmente el grupo de archivos principal tendrá la extension mdf y los secundarios ndf.&lt;br /&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/ms176061.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;USE master&lt;br /&gt;GO&lt;br /&gt;ALTER DATABASE [JABA] ADD FILEGROUP SECONDARY&lt;br /&gt;GO&lt;br /&gt;ALTER DATABASE [JABA]&lt;br /&gt;ADD FILE&lt;br /&gt;( NAME = 'JABA2',&lt;br /&gt;FILENAME = N'C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\JABA2.ndf',&lt;br /&gt;SIZE = 5MB,&lt;br /&gt;MAXSIZE = UNLIMITED,&lt;br /&gt;FILEGROWTH = 0),&lt;br /&gt;( NAME = 'JABA3',&lt;br /&gt;FILENAME = N'C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\JABA3.ndf',&lt;br /&gt;SIZE = 5MB,&lt;br /&gt;MAXSIZE = UNLIMITED,&lt;br /&gt;FILEGROWTH = 0)&lt;br /&gt;TO FILEGROUP SECONDARY&lt;br /&gt;GO&lt;br /&gt;ALTER DATABASE [JABA] MODIFY FILEGROUP SECONDARY DEFAULT&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;Con los grupos de archivos se podría:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Almacenar los datos de lectura/escritura de los de solo lectura.&lt;/li&gt;&lt;li&gt;Almacenar los indices y los datos en discos separados.&lt;/li&gt;&lt;li&gt;Hacer copias de seguridad o restaurar archivos individuales o en grupos de archivos en lugar de copias completas.&lt;/li&gt;&lt;li&gt;etc...&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-7164460375119506921?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/7164460375119506921/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=7164460375119506921' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7164460375119506921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7164460375119506921'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/creacion-de-grupos-de-archivos.html' title='Creación de grupos de archivos'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-7122507102064542348</id><published>2009-03-07T14:04:00.000-08:00</published><updated>2009-03-07T14:13:20.544-08:00</updated><title type='text'>Procedimientos almacenados del sistema</title><content type='html'>Son procedimentos almacenados para recuperar metadatos de la BD.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sp_databases: devuelve una lista de bases de datos de la instancia de SQL Server.&lt;/li&gt;&lt;li&gt;sp_store_procedures: devuelve una lista de los procedimientos de la base de datos actual.&lt;/li&gt;&lt;li&gt;sp_help: proporciona información acerca de un objeto de la base de datos.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/ms182764.aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;br /&gt;EXEC sp_databases&lt;br /&gt;GO&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-7122507102064542348?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/7122507102064542348/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=7122507102064542348' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7122507102064542348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7122507102064542348'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/procedimientos-almacenados-del-sistema.html' title='Procedimientos almacenados del sistema'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-4559416498135263191</id><published>2009-03-07T14:00:00.000-08:00</published><updated>2009-03-07T14:04:17.395-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funciones'/><category scheme='http://www.blogger.com/atom/ns#' term='metadatos'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Funciones de metadatos</title><content type='html'>Son funciones que devuelven información acerca de la base de datos y sus objetos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DB_ID:&lt;/li&gt;&lt;li&gt;DN_NAME:&lt;/li&gt;&lt;li&gt;FILE_ID:&lt;/li&gt;&lt;li&gt;FILE_NAME:&lt;/li&gt;&lt;li&gt;FILEGROUP_ID:&lt;/li&gt;&lt;li&gt;FILEGROUP_NAME:&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-4559416498135263191?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/4559416498135263191/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=4559416498135263191' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4559416498135263191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/4559416498135263191'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/funciones-de-metadatos.html' title='Funciones de metadatos'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-5699328230214933787</id><published>2009-03-07T13:54:00.000-08:00</published><updated>2009-03-07T13:59:56.897-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vistas'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Vistas de catálogo</title><content type='html'>Con las vistas de catalogo podemos consultar metadatos acerca de los objetos de la base de datos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sys.databases&lt;/li&gt;&lt;li&gt;sys.database_files&lt;/li&gt;&lt;li&gt;sys.columns&lt;/li&gt;&lt;li&gt;sys.events&lt;/li&gt;&lt;li&gt;sys.idexes&lt;/li&gt;&lt;li&gt;sys.tables&lt;/li&gt;&lt;li&gt;sys.views&lt;/li&gt;&lt;li&gt;sys.schemas&lt;/li&gt;&lt;li&gt;sys.database_permissions&lt;/li&gt;&lt;li&gt;sys.database_principals&lt;/li&gt;&lt;li&gt;sys.database_role_members&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-5699328230214933787?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/5699328230214933787/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=5699328230214933787' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5699328230214933787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5699328230214933787'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/vistas-de-catalogo.html' title='Vistas de catálogo'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-7670248601829959884</id><published>2009-03-07T12:47:00.000-08:00</published><updated>2009-04-06T13:47:04.408-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='DATABASE'/><category scheme='http://www.blogger.com/atom/ns#' term='ATER'/><title type='text'>Opciones de bases de datos</title><content type='html'>Estas son algunas de las opciones de bases de datos mas usadas:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;AUTO_CREATE_STATICS: &lt;/li&gt;&lt;li&gt;AUTO_UPDATE_STATICS:&lt;/li&gt;&lt;li&gt;AUTO_CLOSE: Cierra automaticamente la base de datos al salir el último usuario. La propiedad Auto_Close es una de las tantas que existen a nivel de configuración de base de datos que se suele dar poca o nada de importancia, motivos?, absoluto desconocimiento de su impacto en la perfomance. Cuando la propiedad Auto_Close está establecida a True, SQL Server cierra los archivos de la base de datos y liberará sus recursos asociados cuando el último usuario cierra su conexión con ella. Esta medida puede conducir a ciertos ahorros en memoria en situaciones de RAM escasa, sin embargo, el siguiente usuario experimentará, al conectarse, las demoras asociadas con la reapertura de la base de datos, es decir el siguiente usuario demorará más en establecer una conexión a la base de datos. Cuidado, he dicho volver establecer un conexión a la base de datos más no al servidor de datos, cuestiones que vienen a ser diferentes. Por lo tanto, se debe evaluar si esto es realmente útil en la configuración de cada base de datos, aunque debo admitir que el ahorro de memoria será insignificante (se libera de 12KB a 20KB), no vale la pena en la mayoría de escenarios configurar este valor en True. Mi recomendación es casi siempre (por no decir siempre) deshabilitar la opción Auto_Close. En realidad se gana muy poco en ahorro de memoria al ajustarlo en True, y se pierde mucho en la performance. Tenga mucho cuidado, aunque la configuración por defecto es False, en el mundo real he podido encontrarme con base de datos ajustada esta propiedad en Auto_Close en True. La verdad es que es bastante importante el aumento de rendimiento. También apuntar que mientras que en las versiones comerciales de SQL Server la propiedad está establecida por defecto a FALSE, no sucede lo mismo en SQL Server Express, con la consiguiente merma del rendimiento. La buena noticia es que en SQL Server 2008 Express Edition esta propiedad ya viene en False por defecto. &lt;/li&gt;&lt;li&gt;AUTO_SHRINK: El archivo de base de datos es candidato a reducción periodica.&lt;/li&gt;&lt;li&gt;ONLINEOFFLINEEMERGENCY: Controla si la base de datos tiene o no conexión.&lt;/li&gt;&lt;li&gt;READ_ONLYREAD_WRITE: Controla si los usuarios pueden o no modificar los datos.&lt;/li&gt;&lt;li&gt;SINGLE_USERRESTRICTED_USERMULTI_USER: Define que usuarios pueden acceder a la base de datos.&lt;/li&gt;&lt;li&gt;CURSOR_CLOSE_ON_COMMIT: Cierra automaticamente los cursores abiertos al acabar una transaccion.&lt;/li&gt;&lt;li&gt;CURSOR_DEFAULT_LOCAL: Limita el ambito del cursor.&lt;/li&gt;&lt;li&gt;CURSOR_DEFAULT_GLOBAL: El ambito del cursor el global a la conexión.&lt;/li&gt;&lt;li&gt;ANSI_NULL_DEFAULT: Define el valor predeterminado de aceptar nulos en los campos de las tablas.&lt;/li&gt;&lt;li&gt;ANSI_NULLS: Cuando es ON las coparaciones con null devuelven null.&lt;/li&gt;&lt;li&gt;RECURSIVE_TRIGGERS: Controla si se permite la activacion recursiva de desencadenadores AFTER.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/en-us/library/bb522682.aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ejemplo:&lt;br /&gt;ALTER DATABASE [DATOS] SET AUTO_SHRINK OFF&lt;br /&gt;GO &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-7670248601829959884?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/7670248601829959884/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=7670248601829959884' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7670248601829959884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7670248601829959884'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/opciones-de-bases-de-datos.html' title='Opciones de bases de datos'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-7069745305331943858</id><published>2009-03-07T12:38:00.000-08:00</published><updated>2009-04-06T13:41:52.269-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CREATE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='DATABASE'/><title type='text'>Creacion de un base de datos con SQL Server 2005</title><content type='html'>Consideraciones a tener en cuanta a la hora de crear una BD:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Propósito: Las Bds OLAP y OLTP tienen distintos requisitos de diseño.&lt;/li&gt;&lt;li&gt;Rendimiento: Las Bds OLTP suelen tener un requisito de rendimiento alto en cuanto al numero de transacciones a procesar por minuto, por lo tanto requiere un nivel de normalización adecuado.&lt;/li&gt;&lt;li&gt;Crecimiento de la necesidad de almacenamiento de la BD: Hay que tener en cuenta las cantidades de datos a a procesar para determinar las necesidades de hardware. Asi mismo se puede configurar las bds para que crezca su tamaño en disco automáticamente aunque esto repercute negativamente en el rendimiento, seria deseable supervisar la necesidad de ajustar el tamaño de las bds en disco.&lt;/li&gt;&lt;li&gt;Ubicación de los archivos: Seria deseable la utilización de distintos discos físicos para que SQL Server optimize el uso de los cabezales de los discos.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;Sintaxis: &lt;a href="http://msdn.microsoft.com/es-es/library/ms176061.aspx"&gt;MSDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Ejemplo:&lt;/p&gt;&lt;p&gt;CREATE DATABASE DATOS ON PRIMARY&lt;/p&gt;&lt;p&gt;( NAME='DATOS', &lt;/p&gt;&lt;p&gt;FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\DATOS.MDF', &lt;/p&gt;&lt;p&gt;SIZE=5MB, &lt;/p&gt;&lt;p&gt;MAXSIZE=UNLIMITED, &lt;/p&gt;&lt;p&gt;FILEGROWTH=0),&lt;/p&gt;&lt;p&gt;FILEGROUP SECONDARY&lt;/p&gt;&lt;p&gt;( NAME='DATOS2', &lt;/p&gt;&lt;p&gt;FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\DATOS2.NDF', &lt;/p&gt;&lt;p&gt;SIZE=5MB, &lt;/p&gt;&lt;p&gt;MAXSIZE=UNLIMITED, &lt;/p&gt;&lt;p&gt;FILEGROWTH=0)&lt;/p&gt;&lt;p&gt;LOG ON&lt;/p&gt;&lt;p&gt;( NAME='DATOS_LOG', &lt;/p&gt;&lt;p&gt;FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\DATOS_LOG.LDF', &lt;/p&gt;&lt;p&gt;SIZE=1MB, &lt;/p&gt;&lt;p&gt;MAXSIZE=UNLIMITED, &lt;/p&gt;&lt;p&gt;FILEGROWTH=0)&lt;/p&gt;&lt;p&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-7069745305331943858?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/7069745305331943858/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=7069745305331943858' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7069745305331943858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7069745305331943858'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/consideraciones-tener-en-cuanta-la-hora.html' title='Creacion de un base de datos con SQL Server 2005'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-307668625398918465</id><published>2009-03-07T11:00:00.000-08:00</published><updated>2009-03-09T07:07:08.060-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programación Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Joomla'/><title type='text'>Recuperar la contraseña de administrador de Joomla</title><content type='html'>Sé que esto no tiene nada que ver con .net, pero es un artículo muy interesante que ayuda a recuperar (o modificar) la contraseña de administrador de tu sitio web hecho con Joomla!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://conexionesrazonables.blogspot.com/2007/05/recuperar-la-contrasea-de-administrador.html"&gt;Conexiones razonables: Recuperar la contraseña de administrador de Joomla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-307668625398918465?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/307668625398918465/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=307668625398918465' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/307668625398918465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/307668625398918465'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2009/03/recuperar-la-contrasena-de.html' title='Recuperar la contraseña de administrador de Joomla'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-5780686524509663811</id><published>2008-09-25T12:06:00.000-07:00</published><updated>2008-09-25T12:08:54.180-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Recursos'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>Iconos Office 2007</title><content type='html'>Para todos aquellos que además de programar os gusta diseñar, para los propios diseñadores o para los que os toca hacer iconos de vez en cuando para vuestras aplicaciones, aquí os dejo una pequeña ayudita.&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Se trata de los iconos que usa el Office 2007 en todas sus aplicaciones:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://www.istartedsomething.com/wp-content/uploads/2006/09/officeicons-v.jpg" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Con esto podéis hacer iconos más profesionales y combinando algunos podréis tener vuestros propios iconos similares a los de Office para que sean más amigables al usuario, ya que la mayoría están acostumbrados a éstos.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-5780686524509663811?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/5780686524509663811/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=5780686524509663811' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5780686524509663811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/5780686524509663811'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/09/iconos-office-2007.html' title='Iconos Office 2007'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-7630411474511314574</id><published>2008-09-25T11:58:00.000-07:00</published><updated>2008-09-25T12:05:22.789-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6'/><title type='text'>Hacer que funciona la rueda del ratón en el Visual Studio 6</title><content type='html'>Aunque este blog sea de .net el artículo siguiente es de Visual Basic 6, que está bastante relacionado con .net y aún se sigue usando hoy en día, más de lo que pensamos. Además, son muchos los desarrolladores en visual basic.net que de vez en cuando tienen que hacer algo en visual basic 6, y son muchos los que se desesperan al pasar al entorno de trabajo más antiguo, donde el incoveniente principal es que no funciona la rueda del ratón. Nos toca echar mano entonces del Ctrl+F y buscar las funciones que tenemos que modificar, o incluso buscarlas con el desplegable que tenemos arriba, donde podemos ir cambiando de método.&lt;br /&gt;&lt;br /&gt;Pues para no tener este pequeño incoveniente y que la programación sea más cómoda, os dejo este &lt;a href="http://support.microsoft.com/kb/837910"&gt;enlace &lt;/a&gt;de donde podréis descargar un ejecutable y configurarlo de la siguiente forma:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Descargue el archivo del enlace anterior.&lt;/li&gt;&lt;li&gt;Haga clic en Inicio y en Ejecutar, escriba regsvr32 &lt;rutadeacceso&gt;\VB6IDEMouseWheelAddin.dlly, a continuación, haga clic en Aceptar.&lt;/li&gt;&lt;li&gt;Inicie Visual Basic 6.0.&lt;/li&gt;&lt;li&gt;Haga clic en Complementos y, a continuación, haga clic en Administrador de complementos.&lt;/li&gt;&lt;li&gt;En la lista Administrador de complementos, haga clic en MouseWheel Fix.&lt;/li&gt;&lt;li&gt;Haga clic en las casillas de verificación Cargado/Descargado y Cargar al iniciar para activarlas.&lt;/li&gt;&lt;li&gt;Haga clic en Aceptar.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Pero como no me fío mucho de esta solución, os dejo el programa &lt;a href="http://www.joebott.com/VB6ScrollwheelFix4.zip"&gt;VB6ScrollWheelFix4&lt;/a&gt; que sólo tendréis que ejecutar cuando tengáis abierto el visual studio y funcionará la rueda, comprobado. Lo malo de este es que hay que ejecutarlo cada vez que reiniciemos el equipo, pero bueno, os ponéis un acceso directo, hacéis doble click y listo, ¡a trabajar!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-7630411474511314574?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/7630411474511314574/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=7630411474511314574' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7630411474511314574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7630411474511314574'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/09/hacer-que-funciona-la-rueda-del-ratn-en.html' title='Hacer que funciona la rueda del ratón en el Visual Studio 6'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-1009391333883476500</id><published>2008-07-10T05:47:00.001-07:00</published><updated>2008-07-10T05:59:11.333-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Problema con ShowBallonTip en Visual Studio 2008</title><content type='html'>A menudo, en nuestras aplicaciones en .net usamos el NotifyIcon para mostrar información de tareas que estamos realizando o para mostrar cualquier mensaje.&lt;br /&gt;&lt;br /&gt;En Visual Studio 2008 hay un pequeño problema, al ponerle que muestre el BallonTip (el globo con la información) con poco tiempo, unos 2 ó 3 segundos, el globo no respeta el tiempo que le hemos especificado y normalmente se pasa, permanece a nuestra vista más tiempo del establecido.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#000099;"&gt;notifyIconMain.ShowBalloonTip(2000, "My Text", MyVariable, ToolTipIcon.Info);&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Esto es debido a que entra en conflicto con el tiempo por defecto del Sistema Operativo, con la consecuente victoria de éste último, por lo tanto no respeta nuestro tiempo y lo muestra el que tiene establecido el SO.&lt;br /&gt;&lt;br /&gt;Otro motivo por el cual ocurre esto es que el globo no desaparece si no hay acciones por parte del usuario. Cuando esto ocurre dicho globo no desaparecerá hasta que haya interacción.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-1009391333883476500?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/1009391333883476500/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=1009391333883476500' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1009391333883476500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1009391333883476500'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/07/problema-con-showballontip-en-visual.html' title='Problema con ShowBallonTip en Visual Studio 2008'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-7158340657611516231</id><published>2008-07-10T05:31:00.001-07:00</published><updated>2008-07-10T05:35:19.811-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Cubo 3D con vídeo en WPF</title><content type='html'>Navegando por la red encontré un artículo bastante interesante donde hacían un cubo 3D, con WPF, poniéndole un vídeo en cada cara de dicho cubo, con la posibilidad de rotar la figura y ver todas las caras.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Esto es un ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_tP7sdi3BZ2A/RuOeHEm9vxI/AAAAAAAAABs/8q11Phzr8sU/s320/cuboWPF.JPG" border="0" /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;El artículo podéis encontrarlo en &lt;a href="http://dotnetsofi.blogspot.com/2007/09/wpf-video.html"&gt;ESTE ENLACE&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-7158340657611516231?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/7158340657611516231/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=7158340657611516231' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7158340657611516231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/7158340657611516231'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/07/cubo-3d-con-vdeo-en-wpf.html' title='Cubo 3D con vídeo en WPF'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tP7sdi3BZ2A/RuOeHEm9vxI/AAAAAAAAABs/8q11Phzr8sU/s72-c/cuboWPF.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-245042224818052773</id><published>2008-04-10T08:32:00.001-07:00</published><updated>2008-04-10T08:32:48.553-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Disponible Windows Vista Service Pack 1</title><content type='html'>Ya tenemos disponible el &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=es&amp;amp;FamilyID=b0c7136d-5ebb-413b-89c9-cb3d06d12674"&gt;Service Pack 1 de Windows Vista&lt;/a&gt; en las actualizaciones de &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;. Lo podemos obtener mediante &lt;strong&gt;Windows Update&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Los sistemas que se ejecutan en el RTM de Windows Vista requieren como máximo tres actualizaciones antes de poder instalar el Service Pack 1. Estas actualizaciones se realizan automáticamente en Windows Vista. Windows Update detectará la configuración del sistema y ofrecerá los paquetes de requisitos previos que son aplicables a su sistema.&lt;br /&gt;&lt;br /&gt;Con este Service Pack 1 de Windows Vista podremos, entre otras cosas, disfrutar de más tiempo de batería en nuestro portátil, ya que inicorpora un sistema de ahorro de batería, cosa que se echaba de menos hasta ahora.&lt;br /&gt;&lt;br /&gt;Éste es el texto que publica &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;:&lt;br /&gt;"Windows Vista Service Pack 1 (SP1) es una actualización de Windows Vista que responde a las peticiones de nuestros clientes. Además de actualizaciones anteriores ya publicadas, SP1 contendrá cambios orientados a problemas de confiabilidad, rendimiento y compatibilidad; admite nuevos tipos de hardware y es compatible con varios de los nuevos estándares que están apareciendo últimamente. SP1 también seguirá facilitando a los administradores de TI la implementación y la administración de Windows Vista. La versión independiente en 5 idiomas de Windows Vista Service Pack 1 se puede instalar en sistemas con alguna de las siguientes versiones de idioma: inglés (EE.UU.), francés, alemán, japonés o español (tradicional). "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-245042224818052773?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/245042224818052773/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=245042224818052773' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/245042224818052773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/245042224818052773'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/04/disponible-windows-vista-service-pack-1.html' title='Disponible Windows Vista Service Pack 1'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-1876052881580237927</id><published>2008-04-10T08:31:00.001-07:00</published><updated>2009-03-09T07:13:43.934-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Visual Studio 2008 - Atajo de teclado para el Intelli Sense</title><content type='html'>A menudo, cuando estamos programando en visual studio requerimos de la ayuda del Intelli Sense, quien nos da las opciones que tenemos para escribir. En Visual Studio 2008 tenemos un truco para sacarlo sin escribir nada. Simplemente tenemos que pulsar:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Ctrl + J&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;y la ventana de ayuda se desplegará mostrándonos lo que podemos escribir. Esto es muy útil, sobretodo al programar en C#, ya que hasta que no poníamos un punto o empezábamos a escribir no nos ayudaba, y cuando estábamos borrando las propiedades de un objeto teníamos que retroceder hasta el punto y volver a escribirlo para que nos apareciera. Ahora ya no; en cualquier momento tecleamos la combinación de teclas que he puesto arriba y se nos mostrará dicha ayuda.&lt;br /&gt;&lt;br /&gt;Otro truco que nos puede ser muy útil es la transparencia del Intelli Sense. Cuando estamos escribiendo hay veces que nos molesta porque estamos copiando código que tenemos debajo, o estamos consultándolo. Pues bien, si nos molesta la ventana de ayuda sólo tenemos que pulsar la tecla &lt;span style="color: rgb(0, 0, 153);"&gt;Control&lt;/span&gt; y se volverá semitransparente, con lo que podremos ver el código sin perder la ayuda.&lt;br /&gt;&lt;br /&gt;Ahora ya podemos programar un poquito más rápido, incluso aunque tengamos que escribir el punto y coma.&lt;br /&gt;&lt;br /&gt;Un saludo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-1876052881580237927?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/1876052881580237927/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=1876052881580237927' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1876052881580237927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/1876052881580237927'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/04/visual-studio-2008-atajo-de-teclado.html' title='Visual Studio 2008 - Atajo de teclado para el Intelli Sense'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-3523613928147729817</id><published>2008-04-01T05:21:00.000-07:00</published><updated>2008-04-01T05:30:44.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Ordenar Array Visual Basic</title><content type='html'>Un ejemplo sencillo de cómo ordenar un array en Visual Basic:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;Dim &lt;span style="color:#330099;"&gt;nombres&lt;/span&gt; As String&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;Dim arr() As String&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;ReDim arr(1)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;arr(0) = "pol"&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;arr(1) = "anna"&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;Array.Sort(arr) &lt;span style="color:#006600;"&gt;'&lt;/span&gt;&lt;span style="color:#006600;"&gt; esto ordena el array&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;For Each nombres In arr&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;     MsgBox(nombres)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;em&gt;Next&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-3523613928147729817?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/3523613928147729817/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=3523613928147729817' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/3523613928147729817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/3523613928147729817'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/04/ordenar-array-visual-basic.html' title='Ordenar Array Visual Basic'/><author><name>David Bernad</name><uri>https://profiles.google.com/101951186598723239347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-MPFx83UGOnQ/AAAAAAAAAAI/AAAAAAAABZw/QG6yIzx90vE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6197198616904517016.post-6223099951087164442</id><published>2008-01-04T22:15:00.000-08:00</published><updated>2008-01-04T13:09:26.494-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Saludos'/><title type='text'>Saludos</title><content type='html'>Hola a todos.&lt;br /&gt;&lt;br /&gt;Empiezo hoy este blog en el que ire exponiendo todas mis experiencias en el mundillo de la programación para compartirlas con todos aquellos que puedan estar interesados y también a modo de recordatorio para mi mismo.&lt;br /&gt;&lt;br /&gt;Espero que pueda ser de utilidad para alguien, para mi creo que lo será.&lt;br /&gt;&lt;br /&gt;En breve ire exponiendo problemillas con los que me encuentro a lo largo del día y las soluciones que les doy y otras curiosidades.&lt;br /&gt;&lt;br /&gt;Hasta la próxima.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6197198616904517016-6223099951087164442?l=dotnetdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdotnet.blogspot.com/feeds/6223099951087164442/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6197198616904517016&amp;postID=6223099951087164442' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6223099951087164442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6197198616904517016/posts/default/6223099951087164442'/><link rel='alternate' type='text/html' href='http://dotnetdotnet.blogspot.com/2008/01/saludos.html' title='Saludos'/><author><name>Juan Antonio Barcelo Aravid</name><uri>http://www.blogger.com/profile/15328829397794208203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
