[MSDE] Eliminar manualmente una instalación de MSDE (Microsoft SQL Server Desktop Engine)

Amigo mío tu que tienes problemas con la instalación/desinstalación de una MSDE (Microsoft SQL Server Desktop Engine) aquí tienes la forma de no “estresarte” demasiado (o no como nosotros, Agustín, Cristina y el que escribe)

Luego de varias horas pudimos dar con la desinstalación manual, entre Agustín y Cristina .

La desinstalación automática nos generaba error, algo fallaba en el instalador .msi… hacíamos un log de la desinstalación pero no nos daba nada.. así que acudimos a la desinstalación manual.

Pasos (que hicimos)

Paso 1: Limpiar .msi (podríamos decir …corrupto)

Primeramente descargamos el conocido Windows Installer CleanUp Utility

Esta opción no desinstala nada, solo nos limpia los archivos que el windows installer coloca en una ubicación temporal para “conocer” cuando hay que desinstalar automáticamente (que en este caso nos generara error,  así que no nos servía)

Paso 2: Manualmente eliminar archivos y carpetas

Ubicación predeterminada:

  • Instancia predeterminada: Program FilesMicrosoft SQL ServerMSSQLData
  • Instancia con nombre: Program FilesMicrosoft SQL ServerMSSQL$<INSTANCENAME>Data

Hay que eliminar tanto Data y Binn
Aqui eliminar toda la carpeta o en ocasiones si existe en Archivos de programa la carpeta “Microsoft SQL Server” no instala

Si necesitas la ubicación y alguien en la instalacion la modifico puedes ir:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerSetupSQLDataRoot
Mas info aquí

 

Paso 3: Limpiar “manualmente el registro de windows”

Aqui hay que eliminar una serie de entradas.. que las dejo copiadas pero estan detalladas en Microsoft Support

  1. Para una instancia predeterminada de MSDE 2000, quite la clave siguiente:
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServer
  2. Para un MSDE 2000 instancia con nombre, quite la clave siguiente:
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server<INSTANCENAME>
  3. Si la siguiente clave del Registro señala a MSDE 2000 instancia ProductCode , quite el valor InstanceComponentSet.x . Por ejemplo, InstanceComponentSet.1 tiene un valor que coincide con el código de producto de sqlrun01.msi:
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerComponent SetInstanceComponentSet.1
  4. Quite la clave del registro de servicio de SQL Server.
    Para una instancia predeterminada de MSDE 2000, quite las siguientes:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSQLServer
    Para un MSDE 2000 instancia con nombre, quitar las siguientes:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSQL$<INSTANCENAME>
  5. Quite la clave de registro de servicio SQLServerAgent:
    Para una instancia predeterminada de MSDE 2000, quite las siguientes:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSQLServerAgent
    Para un MSDE 2000 instancia con nombre, quitar las siguientes:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSQLAgent$<INSTANCENAME>

 

Mas info de estos pasos: http://support.microsoft.com/kb/320873

 

Paso 4: Sin reiniciar podremos volver a instalar una instancia.

 

Instalación con parámetros personalizados:

El .bat que utilizamos:
setup.exe /qb+ SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0 INSTANCENAME=MINSTANCIA SAPWD=mipassword /log c:Logsql.log

Mas info de opciones de instalación para MSDE: http://msdn.microsoft.com/es-es/library/aa214935(en-us,SQL.80).aspx

 

 

Enlaces

[EF 1.0] Obtener la foreign key de una entidad (que no la tenemos por intellisense)

El que esta trabajando con Entity Framework 1.0 (para VS2008 SP1)… sabrá que:

Cuando creamos el modelo las foreign keys las utiliza para crear las relaciones, y mediante propiedades navegar entre ellas. O sea no necesitaríamos las FK para nada, porque es algo que la DB necesita para relaciones (“larga vida a las base de datos relacionales”)

Esta particularidad de no visualizar las claves foráneas me parece muy bueno, ya que no la necesitamos en POO

NOTA Adjunta: en EF 4.0 (que seria la 2.0 pero la versión sigue a la del Framework .NET) al momento de generar el modelo pregunta si queremos “visualizar las foreign keys” 🙂

 

A través de una pregunta en los newsgroups y foros (que mas bien me vino por email) necesitaban si o si desesperadamente el identificador de la foránea, así que lo dejo por aquí para referencia.

 

Pensamiento lateral: (pensando pensando.. en que momento utilizar esto) Se me ocurre cuando estamos visualizando en una pagina ASP.NET y queremos ver el detalle de algo adjunto o enviarlo a una función javascript seria necesario ir a las clave foránea, en vez de traer la entidad relacionada. Caso claro es las grillas donde por alguna razón tenemos que visualizar una imagen asociada y deseamos enviar el id al handler que despliega la misma. (Esto es solo un pensamiento en voz alta)

 

Veamos lo que necesitamos…

En la DB la tabla que mapeamos…

image

Si tenemos una entidad relacionada con otras, o sea con una relación de conocimiento (Asociación), nos queda en nuestro modelo

image

donde podremos apreciar que no se encuentras las claves foráneas

image

 

Pero si no puedes dormir sin esta información…

 

Como lo obtenemos?

Opción recomendada utilizando elegantemente expresiones lambda, y buscamos el nombre de la clave foránea que tanto deseamos:

En VB.NET

Dim tipoPublicidadId As Int32 = Int32.Parse(publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues.First(Function(k) k.Key = "TipoPublicidadId").Value)

 

En C#

int tipoPublicidadId = (int)publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues.First(k => k.Key == "TipoPublicidadId").Value;

 

Podemos por índice…, algo que nunca me gusto utilizar “índices” (vaya uno a saber en que posición se encuentra la que necesitamos,… pero igualmente va el código

En VB.NET

Dim tipoPublicidadId As Int32
If publicidadArchivo.TipoPublicidadReference.EntityKey IsNot Nothing Then 
     tipoPublicidadId = Int32.Parse(publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues(0).Value) 
End If

EN C#

int tipoPublicidadId;
if (!IsNothing(publicidadArchivo.TipoPublicidadReference.EntityKey)) {
    tipoPublicidadId = Int32.Parse(publicidadArchivo.TipoPublicidadReference.EntityKey.EntityKeyValues(0).Value);
}

 

Cuando se cargan?

Las asociaciones se cargan y completan cuando hacemos Include en la consulta LINQ to Entities relacionada, o la carga explicita con mediante el método Load

NOTA: Hasta EF 4.0 no tenemos Lazy Load “nativo”.

 

 

Enlaces

Examen 70-547 aprobado. Certificación MCPD: Microsoft Certified Professional Developer

El lunes pasado aprobé el Examen 70-547 que es sobre desarrollo de aplicaciones web.

El que faltaba para Microsoft Certified Professional Developer (MCPD) en Web Applications

También poniendo semilla “empecemos por casa” del post anterior: Curso Terminado: Becas Control+F Curso .NET 240hs (UTN – FRRe).
 

Un Testing Center mas cerca…

Lo bueno en esta oportunidad e interesante es que no tuve que viajar hacia Buenos Aires (o Rosario o Córdoba), sino que “cruzando el puente” en Resistencia (Chaco) tenemos un Testing Center de Prometric, nuestros colegas y amigos de Pampa Technologies (PampaTech) (ex MegaKey SRL) solo que esta en el listado de Prometric como el ultimo. Muy buena la atención de Rafael.

 

Preparación

Para eso durante los últimos días me prepare (además de la experiencia que uno carga en el trabajo, y participaciones en newsgroup/foros) como siempre lo hago mediante el libro del Training Kit del examen.

 

image

Que viene con un CD

image

 MCPD Self-Paced Training Kit (Exam 70-547): Designing and Developing Web-Based Applications Using the Microsoft .NET Framework (Hardcover)
http://www.amazon.com/MCPD-Self-Paced-Training-Exam-70-547/dp/0735623406

Puedes darle una mirada interna desde el enlace a Amazon.com

 

Temas:

  • Application Requirements and Design
  • Decompose Specifications for Developers
  • Design Evaluation
  • Creating a User Interface
  • Creating and Choosing Controls
  • Data Validation
  • Delivering Multimedia
  • Component Design
  • Component Development
  • Reusable Software Components
  • Application Logic Layer
  • Logging and Monitoring
  • Application Configuration
  • Define and Evaluate a Testing Strategy
  • Creating Development Tests
  • Deploying an Application
  • Supporting an Application

 

En el libro hay referencias a URL en la mayoría hacia MSDN Library, o artículos de MSDN Magazine.

Lo que me llamo la atención (sabia que era así, pero me hizo pensar) es que las preguntas no eran directas sino mas bien te presenta unos requerimientos y tendrás que elegir entre las diferentes alternativas teniendo en cuenta tu diseño lógico de tu aplicacion, físico, componentes, base de datos, reusabilidad), luego varios preguntas sobre estrategia de testing (unitarios, de integración, stress, etc.)

Fue un examen de sin “pica-código” (como dirían mis amigos españoles) sino mas bien de que “pensamiento exploratorio”, aunque no tan profundo como pensaba (Matías Iacono nos daba un indicio de tranquilidad sobre la profundidad del examen);  en la mayoría de las preguntas el sentido común viene a nuestra mente, así que la experiencia también cuenta. 
 

NOTA: Para que que esta pensando que estoy diciendo parte del examen y que es parte del NDA, en el CD adjunto al libro viene una batería de preguntas que ayudan a perfilarse (no son exactamente como el examen, pero ayudan) y allí se perfilan de ese manera.

 

 

Enlaces