Utilizar Una Acción Personalizada Para Crear Una Base de Datos Durante La Instalación

5
utilizar una acción personalizada para crear una base de datos durante la instalación En el siguiente tutorial se muestra el uso de una acción personalizada y la propiedad CustomActionData para crear una base de datos y una tabal de base de datos durante la instalación. Nota Este tutorial requiere tener instalado SQL Server en el equipo donde se implementará la aplicación. Para crear una clase del instalador 1. En el menú Archivo, elija Nuevo y, a continuación, seleccione Proyecto. 2. En el cuadro de diálogo Nuevo proyecto, seleccione Proyectos de Visual Basic en el panel Tipos de proyecto y, a continuación seleccione Biblioteca de clases en el panel Plantillas. En el cuadro Nombre, escriba DBCustomAction. 3. Haga clic en Aceptar para cerrar el cuadro de diálogo. 4. En el menú Proyecto, elija Agregar nuevo elemento. 5. En el cuadro de diálogo Agregar nuevo elemento, seleccione Clase del instalador. En el cuadro Nombre, escriba DBCustomAction. 6. Haga clic en Aceptar para cerrar el cuadro de diálogo. Para crear un objeto de conexión de datos 1. En el Explorador de servidores, seleccione Conexiones de datos. Haga clic con el botón secundario y elija Agregar conexión. 2. En el cuadro de diálogo Propiedades de vínculo de datos, haga lo siguiente: a. Escriba el nombre de servidor. b. Seleccione Usar seguridad integrada de Windows NT. c. En el cuadro de base de datos, escriba principal. d. Haga clic en Aceptar para cerrar el cuadro de diálogo. 3. Arrastre la nueva conexión y suéltela en el diseñador DBCustomAction.vb para crear un objeto sqlConnection1. Para crear un archivo de texto que contenga una instrucción SQL para crear una base de datos 1. En el Explorador de soluciones, seleccione el proyecto DBCustomAction. En el menú Proyecto, elija Agregar nuevo elemento. 2. En el cuadro de diálogo Agregar nuevo elemento, seleccione Archivo de texto. En el cuadro Nombre, escriba sql.txt (en minúsculas). 3. Haga clic en Aceptar para cerrar el cuadro de diálogo. 4. Agregue el siguiente texto al archivo sql.txt: 5. CREATE TABLE [dbo].[Employees] ( 6. [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , 7. [Rsvp] [int] NULL , 8. [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

description

Ejemplo con Sql

Transcript of Utilizar Una Acción Personalizada Para Crear Una Base de Datos Durante La Instalación

Page 1: Utilizar Una Acción Personalizada Para Crear Una Base de Datos Durante La Instalación

 utilizar una acción personalizada para crear una base de datos durante la instalación

En el siguiente tutorial se muestra el uso de una acción personalizada y la propiedad

CustomActionData para crear una base de datos y una tabal de base de datos durante la instalación.

Nota   Este tutorial requiere tener instalado SQL Server en el equipo donde se implementará la aplicación.

Para crear una clase del instalador

1. En el menú Archivo, elija Nuevo y, a continuación, seleccione Proyecto.

2. En el cuadro de diálogo Nuevo proyecto, seleccione Proyectos de Visual Basic en el panel Tipos de proyecto y, a continuación seleccione Biblioteca de clases en el panel Plantillas. En el cuadro Nombre, escriba DBCustomAction.

3. Haga clic en Aceptar para cerrar el cuadro de diálogo. 4. En el menú Proyecto, elija Agregar nuevo elemento. 5. En el cuadro de diálogo Agregar nuevo elemento, seleccione Clase del instalador. En el

cuadro Nombre, escriba DBCustomAction. 6. Haga clic en Aceptar para cerrar el cuadro de diálogo.

Para crear un objeto de conexión de datos

1. En el Explorador de servidores, seleccione Conexiones de datos. Haga clic con el botón secundario y elija Agregar conexión.

2. En el cuadro de diálogo Propiedades de vínculo de datos, haga lo siguiente: a. Escriba el nombre de servidor. b. Seleccione Usar seguridad integrada de Windows NT. c. En el cuadro de base de datos, escriba principal. d. Haga clic en Aceptar para cerrar el cuadro de diálogo.

3. Arrastre la nueva conexión y suéltela en el diseñador DBCustomAction.vb para crear un objeto sqlConnection1.

Para crear un archivo de texto que contenga una instrucción SQL para crear una base de

datos

1. En el Explorador de soluciones, seleccione el proyecto DBCustomAction. En el menú Proyecto, elija Agregar nuevo elemento.

2. En el cuadro de diálogo Agregar nuevo elemento, seleccione Archivo de texto. En el cuadro Nombre, escriba sql.txt (en minúsculas).

3. Haga clic en Aceptar para cerrar el cuadro de diálogo. 4. Agregue el siguiente texto al archivo sql.txt:

5. CREATE TABLE [dbo].[Employees] (

6. [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

7. [Rsvp] [int] NULL ,

8. [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

9. ) ON [PRIMARY];

10.

11. ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD

12. CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED

13. (

14. [Name]

) ON [PRIMARY];

Page 2: Utilizar Una Acción Personalizada Para Crear Una Base de Datos Durante La Instalación

15. En el Explorador de soluciones, seleccione sql.txt. En la ventana Propiedades, establezca la propiedad BuildAction en el valor Recurso incrustado.

Para agregar código a la clase del instalador que permita leer el archivo de texto

1. En el Explorador de soluciones, seleccione DBCustomAction.vb. En el menú Ver, elija Código.

2. Agregue las siguientes instrucciones Imports al principio del módulo:

3. Imports System.IO

Imports System.Reflection

4. Agregue el código siguiente a la clase:

5. Private Function GetSql(ByVal Name As String) As String

6. Try

7.

8. ' Gets the current assembly.

9. Dim Asm As [Assembly] = [Assembly].GetExecutingAssembly()

10.

11. ' Resources are named using a fully qualified name.

12. Dim strm As Stream = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name)

13.

14. ' Reads the contents of the embedded file.

15. Dim reader As StreamReader = New StreamReader(strm)

16. Return reader.ReadToEnd()

17. Catch ex As Exception

18. MsgBox("In GetSQL: " & ex.Message)

19. Throw ex

20. End Try

21.

22. {0><}100{> End Function<0}

23.

24. Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String)

25. Dim Command As New SqlClient.SqlCommand(Sql, sqlConnection1)

26.

27. Command.Connection.Open()

28. Command.Connection.ChangeDatabase(DatabaseName)

29. Try

30. Command.ExecuteNonQuery()

31. {0><}100{>Finally<0}

32. ' Finally, blocks are a great way to ensure that the connection

33. ' is always closed.

34. Command.Connection.Close()

35. End Try

36. {0><}100{> End Sub<0}

37.

38. Protected Sub AddDBTable(ByVal strDBName As String)

39. Try

40. ' Creates the database.

Page 3: Utilizar Una Acción Personalizada Para Crear Una Base de Datos Durante La Instalación

41. ExecuteSql("master", "CREATE DATABASE " + strDBName)

42.

43. ' Creates the tables.

44. ExecuteSql(strDBName, GetSql("sql.txt"))

45.

46. Catch ex As Exception

47. ' Reports any errors and abort.

48. MsgBox("In exception handler: " & ex.Message)

49. Throw ex

50. End Try

51. {0><}100{> End Sub<0}

52.

53. Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)

54. MyBase.Install(stateSaver)

55. AddDBTable(Me.Context.Parameters.Item("dbname"))

{0><}100{> End Sub<0}

56. En el menú Generar, elija Generar DBCustomAction.

Para crear un proyecto de implementación

1. En el menú Archivo, elija Agregar proyecto, Nuevo proyecto.

2. En el cuadro de diálogo Agregar proyecto, seleccione Proyectos de instalación e implementación en el panel Tipos de proyecto y, a continuación seleccione Proyecto de instalación en el panel Plantillas. En el cuadro Nombre, escriba Instalador de DBCustomAction.

3. Haga clic en Aceptar para cerrar el cuadro de diálogo. 4. En la ventana Propiedades, seleccione la propiedad ProductName y escriba DB Installer. 5. En el Editor del sistema de archivos, seleccione la Carpeta de la aplicación. En el menú

Acción, elija Agregar, Resultados del proyecto. 6. En el cuadro de diálogo Agregar grupo de resultados del proyecto, seleccione el resultado

principal para el proyecto DBCustomAction. Haga clic en Aceptar para cerrar el cuadro de diálogo.

Para agregar un cuadro de diálogo de instalación personalizado

1. Seleccione el proyecto Instalador de DBCustomAction en el Explorador de soluciones. En el menú Ver, elija Editor y, a continuación, seleccione Interfaz de usuario.

2. En el Editor de la interfaz de usuario, seleccione el nodo Iniciar bajo Instalar. En el menú Acción, elija Agregar cuadro de diálogo.

3. En el cuadro de diálogo Agregar cuadro de diálogo, seleccione el cuadro de diálogo Cuadros de texto (A) y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo.

4. En el menú Acción, elija Subir. Repita esta acción hasta que el cuadro de diálogo Cuadros de texto (A) quede situado encima del nodo Carpeta de instalación.

5. En la ventana Propiedades, seleccione la propiedad BannerText y escriba Especifique el nombre de la base de datos.

6. Seleccione la propiedad BodyText y escriba Este cuadro de diálogo permite especificar el nombre de la base de datos que se debe crear en el servidor de bases de datos.

7. Seleccione la propiedad Edit1Label y escriba Nombre de la base de datos:. 8. Seleccione la propiedad Edit1Property y escriba CUSTOMTEXTA1. 9. Seleccione las propiedades Edit2Visible, Edit3Visible y Edit4Visible y asígneles el valor

false.

Para crear la acción personalizada

1. Seleccione el proyecto Instalador de DBCustomAction en el Explorador de soluciones. En el menú Ver, elija Editor y, a continuación, seleccione Acciones personalizadas.

Page 4: Utilizar Una Acción Personalizada Para Crear Una Base de Datos Durante La Instalación

2. En el Editor de acciones personalizadas, seleccione el nodo Instalar. En el menú Acción, elija Agregar acción personalizada.

3. En el cuadro de diálogo Seleccionar elemento en el proyecto, haga doble clic en la Carpeta de aplicación.

4. Seleccione el elemento Resultado principal de DBCustomAction(Active) y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo.

5. En la ventana Propiedades, seleccione la propiedad CustomActionData y escriba /dbname=[CUSTOMTEXTA1].

6. En el menú Generar, elija Generar Instalador de DBCustomAction.

Para instalar en el equipo de desarrollo

Seleccione el proyecto Instalador de DBCustomAction en el Explorador de soluciones. En el

menú Proyecto, elija Instalar.

Esto hará que se ejecute el instalador en el equipo de desarrollo.

Nota   Para poder ejecutar el instalador, debe tener los permisos de instalación

correspondientes en el equipo.

Para implementar en otro equipo

1. En el Explorador de Windows, desplácese hasta el directorio del proyecto y busque el instalador que se ha generado. La ruta de acceso predeterminada será \Documents and Settings\nombre_inicio_sesión\Instalador de DBCustomAction\configuración_proyecto\Instalador de DBCustomAction.msi. La configuración_proyecto predeterminada es Debug.

2. Copie el archivo Instalador de DBCustomAction.msi y todos los demás archivos y subdirectorios del directorio en el otro equipo.

Nota   Para instalar en un equipo que no está en red, copie los archivos en un medio tradicional, tal como un CD-ROM.

En el equipo de destino, haga doble clic en el archivo Setup.exe para ejecutar el instalador.

Nota   Para poder ejecutar el instalador, debe tener los permisos de instalación correspondientes en el equipo.

Para desinstalar la aplicación

1. En el Panel de control de Windows, haga doble clic en Agregar o quitar programas.

2. En el cuadro de diálogo Agregar o quitar programas, seleccione Instalador de DBCustomAction y haga clic en Quitar, a continuación haga clic en Aceptar para cerrar el cuadro de diálogo.

Sugerencia   Para desinstalar del equipo de desarrollo, en el menú Proyecto, elija Desinstalar.

Vea también

Administración de acciones personalizadas en la implementación | CustomActionData (Propiedad) |

Conectarse a orígenes de datos con ADO.NET | Control de errores en acciones personalizadas