www.elbruno.com

Finalmente he terminado de configurar mi nuevo website www.elbruno.com y abandonaré a My Space que bastantes problemas me ha traído para mudar mi blog.

ElBruno.com está basado en DotNetNuke y para mi Blog, he utilizado un módulo que me da este servicio. También he agregado otro módulo que integra GoogleMaps, y desde el cual podrán ver mi posición diariamente no piensen en guarradas, mas adelante se pondrá más interesante cuando en Julio empiece a dar vueltas por Europa.

Mi amigo Ernesto me ha sugerido otras opciones como BlogSpot o WordPress, pero las he descartado como también he descartado invertir una pila infernal de €€€ por el mejor producto de este tipo Community Server 2.0 para Asp.Net con GPS incluido.

Para no descolgarme de golpe, en My Space actualizaré las entradas que agregue a mi blog para que queden de referencia.

 

Saludos

El Bruno

PD:  Obviamente my site, me da además unos eurillos cosa que My Space no hace.

Cambios en my space …


Cambios en msn Spaces … a pocos días de definitivamente empezar a probar mi propio blog, hoy me encuentro con la novedad del  cambio de my space. De la anterior url

http://spaces.msn.com/brunocapuano

a cambiado a

http://brunocapuano.spaces.msn.com

y eso que antes era

http://spaces.msn.com/members/brunocapuano

Hasta donde llegaremos hoy ???

 

Saludos

El Bruno

Asesinar todos los procesos asociados a una base de datos

Everyday hay un pequeño problema que nos da satisfacciones cuando lo podemos solucionar, el del dia de ayer, estuvo centrado en la creación dinámica de bases de datos sin utilizar ISQL y Sql scripts. Una solución fue usar SqlCommand, y ejecutar un script para el DROP y el CREATE de la Base de datos

 

DROP DATABASE MyDBPrueba

CREATE DATABASE MyDBPrueba

 

 

Sin embargo, uno de los problemas que tiene la ejecución de este script se da cuando hay algún usuario conectado a la Base de Datos; en este caso no se puede DROPPEAR la misma.

La solución a este problema puede ser este SQL script que elimina todos los procesos asociados a una base de datos.

 

USE master;

DECLARE curkillproc

CURSOR FOR SELECT

   spid,dbs.name AS dbname

 FROM

master..sysprocesses pro,

 master..sysdatabases dbs

 WHERE

 pro.dbid = dbs.dbid AND

 dbs.name = ‘MyDBPrueba’

 FOR READ ONLY

 

 DECLARE @varspid AS integer

 DECLARE @vardbname AS varchar(256)

 DECLARE @numUsers AS integer

SET @numUsers = 0

 OPEN curkillproc

 FETCH NEXT FROM

 curkillproc

 INTO @varspid, @vardbname

WHILE @@fetch_status = 0

BEGIN

 EXEC(‘kill ‘ + @varspid)

 SET @numUsers = @numUsers + 1

 FETCH NEXT FROM curkillproc

 INTO @varspid, @vardbname

 END

CLOSE curkillproc

DEALLOCATE curkillproc

 SELECT @numUsers as NumUsersDisconnected

 

Si lo traducimos a una function C#, puede quedar de la siguiente manera

 

/// <summary>

/// Disconnects the users from data base.

/// </summary>

/// <param name="sqlConnection">The SQL connection.</param>

/// <param name="databaseName">Name of the database.</param>

/// <param name="commandTimeout">The command timeout.</param>

/// <returns>The number of users disconected.</returns>

private int DisconnectUsers(SqlConnection sqlConnection, string databaseName, int commandTimeout)

{

  string query = string.Format(CultureInfo.InvariantCulture, "USE master; \r\nDECLARE curkillproc \r\nCURSOR FOR SELECT \r\n   spid,dbs.name AS dbname \r\n FROM \r\nmaster..sysprocesses pro, \r\n master..sysdatabases dbs \r\n WHERE \r\n pro.dbid = dbs.dbid AND \r\n dbs.name = ‘{0}’ \r\n FOR READ ONLY \r\n \r\n DECLARE @varspid AS integer \r\n DECLARE @vardbname AS varchar(256) \r\n DECLARE @numUsers AS integer \r\nSET @numUsers = 0 \r\n OPEN curkillproc \r\n FETCH NEXT FROM \r\n curkillproc \r\n INTO @varspid, @vardbname \r\nWHILE @@fetch_status = 0 \r\nBEGIN \r\n EXEC(‘kill ‘ + @varspid) \r\n SET @numUsers = @numUsers + 1 \r\n FETCH NEXT FROM curkillproc \r\n INTO @varspid, @vardbname \r\n END \r\nCLOSE curkillproc \r\nDEALLOCATE curkillproc \r\n SELECT @numUsers as NumUsersDisconnected \r\n", databaseName);

  SqlCommand cmd = new SqlCommand(query, sqlConnection);

  cmd.CommandTimeout = commandTimeout;

  try

  {

    return (int)cmd.ExecuteScalar();

  }

  catch

  {

    throw;

  }

}

 

 

Espero que les sea útil.

 

Saludos

El Bruno

 

PD: No hace falta que recuerde que en el caso de eliminar todas las conexiones abiertas contra una base de datos, debemos tener un cuidado especial para no reventar algún proceso importante contra la misma. Y que este codigo es un rejunte de conocimiento recolectado de diferentes artículos leidos en la Web, si puedo reuno a todas las "sources" :D.

 

Editor visual de proyectos MSBuild

Buenas, en estos momentos me encuentro completamente adicto a todos los partidos de la primera fase del mundial en las fases finales de deploy, tests y futuros mantenimientos en un proyecto; y aquí es donde se torna más indispensable MSBuild si queremos lograr un proceso estable de desarrollo.

Gracias a mi amigo John, he conocido esta herramienta que permite editar y crear visualmente archivos de proyecto MSBuild. Aquellos que se dedican a crear estos archivos editándolos a mano en VS2005 sabran de que hablo.

¡¡¡ Pues bien a utilizarla y a aprovecharla !!!

 

Saludos

El Bruno

PD: –> PrintScreen here !!!

Empezó el Mundial !!!


¡¡¡ Empezó el mundial !!! con un partidazo y 6 goles entre Alemania y Costa Rica, donde ganó el local (4-2); y después la primera sorpresa con el triunfo de Ecuador por 2 a 0 a Polonia. Hoy juega Argentina con los elefantes de Costa de Marfil en un partido muy duro, pero que seguramente dará mucho que hablar.

¡¡¡ VAMOS ARGENTINA !!!

 

Saludos

El Bruno