none
Requisitos previos y la funcionalidad de la base de datos inmersa en el programa RRS feed

  • Pregunta

  • Hola, lo que trato de hacer es instalar mi aplicación con la base de datos incluida en el programa.

    Este funciona dentro y fuera de visual studio, pero al instalarlo en otro equipo no. Esto es porque en el equipo de destino no tiene los paquetes necesarios... 

    ¿Alguien sabe que pasos debo seguir para cumplir con esos requisitos?

    Uso el .net framework 4.0 client profile. no se si deba agregar algun sqlserver.

    sábado, 13 de junio de 2020 5:30

Respuestas

Todas las respuestas

  • [...] con la base de datos incluida en el programa.

    Ojo, aquí hay que distinguir dos cosas. No es lo mismo la base de datos que el motor de base de datos.

    La base de datos la puedes incluir con el programa.

    El motor de base de datos tiene que estar previamente instalado en el equipo.

    En otras palabras, tienes que tener SQL Server instalado en el equipo de destino. No se puede incluir en el programa, no hay ningún paquete que lo haga. Lo que sí se puede hacer es construir un instalador que señale SQL Server como pre-requisito, y que enlace con la web de Microsoft para descargar e instalar una versión Express o LocalDb. Entonces esa descarga desencadena un proceso de instalación que instala el servidor SQL antes de instalar tu aplicación.

    Como alternativa, podrías usar alguna base de datos de las que no requieren un servicio, sino que se ejecutan directamente desde un conjunto de DLLs, como por ejemplo Sqlite. En este caso sí que puedes incluirla con tu programa por el simple método de copiar las DLLs. Pero requerirá retoques porque la variante y capacidades de SQL que soporta no son iguales a las de Sql Server.

    sábado, 13 de junio de 2020 6:53
    Moderador
  • Hola Alberto Poblacion, ya hice la prueba instalando un motor de base de datos en el equipo de destino, la 2008 para ser exactos... pero la base de datos no funciona... esto lo pongo dentro de los requisitos previos y supongo que se configura en automático... ¿debo hacer algún otro paso para que funcione?
    sábado, 13 de junio de 2020 15:03
  •  supongo que se configura en automático...

    ¿Cómo que se configura en automático? No tiene nada para configurarse en automático. Todo lo que quieras configurar tendrás que configurarlo tú.

    ¿Qué clase de base de datos es? ¿Es un LocalDB? ¿Es una base de datos con AttachDbFileName con la Edición Express? Estas dos son las únicas que tienen algo semi-automático para configurarse. Cualquier otra cosa requiere que previamente montes los archivos de base de datos sobre el servicio SQL y que modifiques la cadena de conexión para que apunte a la base de datos que has montado. Ah, y no olvidemos crear antes las credenciales adecuadas en SQL Server y poner la configuración que le corresponda en la cadena de conexión.

    sábado, 13 de junio de 2020 15:17
    Moderador
  • La cadena de conexión esta creada desde propiedades/configuración:

    Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\RIGA.mdf;Integrated Security=True;Connect Timeout=30

    Lo de la configuración me refiero al motor, realmente no se que es lo que esta mal...

    ¿Es una base de datos con AttachDbFileName con la Edición Express?

    >>> Sí

     

    sábado, 13 de junio de 2020 15:21
  • Bien, a partir de la cadena de conexión, eso responde a la pregunta de qué tipo es: se trata de un LocalDb.

    Para que funcione, tienes que tener instalada una versión LocalDB de SQL Server. Si, como dices, has instalado un 2008, entonces no vale. En la versión 2008 no existía LocalDB.

    https://docs.microsoft.com/es-es/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver15

    Aparte de eso, dado que está buscando el archivo RIGA.mdf en el DataDirectory, asegúrate de que ese fichero efectivamente se encuentra en el directorio mapeado al DataDirectory (que varía dependiendo del tipo de aplicación de que se trate y de cómo la hayas desplegado).

    sábado, 13 de junio de 2020 19:52
    Moderador
  • Gracias Alberto Poblancion, ya estoy más informado de los pasos.

    Ya tengo todo instalado, ahora solo tengo el siguiente detalle:

    Creation of LocalDB instance "MSSQLLocalDB" with version 11.0 failed because of the following error:
    Unexpected error occurred inside a LocalDB instance API method call. See the Windows Application event log for error details.

    Según los pasos de instalación de este enlace debo crear la instancia.

    https://www.sqlshack.com/es/como-instalar-microsoft-sql-server-express-localdb/

    Me deja crear la instancia v11.0 pero no la que uso. sigo investigando para corregir el problema y ver si con eso funciona.

    sábado, 13 de junio de 2020 21:19
  • Unexpected error occurred inside a LocalDB instance API method call. See the Windows Application event log for error details.

    Tiene mal aspecto. Parece un error interno dentro del propio LocalDB. No se me ocurre nada que decirte, salvo que captures los Logs y plantees la pregunta en el foro de SQL Server. Tal vez ahí haya alguien que sepa investigar el error a partir de la información que revele el Log.
    domingo, 14 de junio de 2020 8:19
    Moderador
  • Estuve probando con las distintas versiones, me funciono con la versión 2019 ya que las anteriores me daban errores... la 2016 y 2017 me mostraban el MSSQLLocalDB pero al comprobar si estaban creados o iniciados estos arrojaban errores (También intente crearlos como hice con la versión 2012 pero tampoco dejo). en el caso de la 2019 solo tuve que iniciarla.

    El problema con la 2012 fue que no era compatible con la versión inmersa del programa mostraba 3 dígitos que la 2012 solo soportaba hasta la 702 (no recuerdo bien) y el programa (la DB) ocupaba uno mayor, mostraba un numero mayor a 800, y esto va de la mano con la creación de la DB dentro de VS.

    Alberto Poblacion gracias por dar seguimiento a mi consulta, pude lograr la conexión.


    • Editado TORO BLANCO domingo, 14 de junio de 2020 14:11
    domingo, 14 de junio de 2020 14:10
  •  

    Gracias por levantar tu consulta en los foros de MSDN. Cerraremos el Hilo, por ende si tiene alguna otra consulta por favor genera otra consulta para que la comunidad de foros te pueda asesorar.

    lunes, 15 de junio de 2020 21:06
    Moderador