Ejecutar Instrucción SQL con WiX

Buenas  a todos.

Después de nuestro anterior post Creando Instalador con WiX he decidido jugar un poco mas con esta tecnología, que se ve prometedora.

Antes de empezar les recuerdo los link principales para leer sobre el tema.

Para este post vamos a ejecutar una instrucción SQL desde nuestro instalador.

Como sabrán, WiX usa XML para hacer las definiciones de nuestro instalador. Para poder ejecutar la instrucción SQL tenemos que hacer lo siguiente.

  • Añadir los espacios de nombres correspondientes.
   1: <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 

   2:      xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 

   3:      xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">

  • En la definición de nuestro del directorio principal colocamos lo siguiente.
   1: <Directory Id="ProgramFilesFolder">

   2:         <Directory Id="ApplicationRootDirectory" Name="WiXApp">

   3:           <Component Id="SqlComponent" Guid="2a57840e-49a3-412c-8602-1f0f6eda1b8e" KeyPath="yes">

   4:             <util:User Id="SQLUser" Name="[SQLUSER]" Password="[SQLPASSWORD]" />

   5:             

   6:             <sql:SqlDatabase Id="SqlDatabase" Database="WiXApp" Server="[SQLSERVER]" 

   7:               CreateOnInstall="yes" DropOnUninstall="yes" User="SQLUser">

   8:               <sql:SqlScript Id="CreateTable" BinaryKey="CreateTable" ExecuteOnInstall="yes" />

   9:             </sql:SqlDatabase>

  10:           </Component>

  11:         </Directory>

  12:             </Directory>

Los anteriores espacios de nombres era para poder definir un usuario para conectarnos a nuestro server, También para definir nuestra bd y cual script ejecutar.

   1: <Binary Id="CreateTable" SourceFile="CreateTable.sql"  />

Además defino las propiedades siguientes.

image

Ya después de ejecutar el instalador en el server de SQL queda así.

image

Algo interesante es que uno define el nombre de la BD y el se encarga de crearla, también si desinstalamos el la elimina. según esto.

   1: <sql:SqlDatabase Id="SqlDatabase" Database="WiXApp" Server="[SQLSERVER]" 

   2:               CreateOnInstall="yes" DropOnUninstall="yes" User="SQLUser">

   3:               <sql:SqlScript Id="CreateTable" BinaryKey="CreateTable" ExecuteOnInstall="yes" />

   4:             </sql:SqlDatabase>

Como puede ver es bastante versátil la herramienta. Ya solo queda probar la parte grafica del instalador.

Espero que les haya gustado.

Saludos.

Romny

Publicado por

Romny Duarte

Ingeniero de sistemas con experiencia en desarrollo web y móvil, geek, amante de la lectura y de la tecnología.

Un comentario en “Ejecutar Instrucción SQL con WiX”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *