none
BASE DE DATOS SQL EXPRESS 2012 - Cadena de Conexión LOCAL sin instancia SQLEXPRESS - AYUDA POR FAVOR...

    Question

  • Hola a tod@s!

    Necesito la ayuda de un expert@ porque me estoy volviendo loco...

    Resulta que tengo SQL EXPRESS 2012 instalado en un equipo de una mini red local (casera) vale?

    Me estoy creando una aplicación cliente-servidor que conecta cualquier equipo de la red local con la bbdd que se encuentra en el servidor, obviamente con autenticación SQL (usuario/contraseña)

    Los datos del servidor local son los siguientes:

    IP SERVIDOR REMOTO: 192.168.1.30
    Puerto: 45000
    Usuario: miusuario
    password: test
    nombre BBDD en servidor: "db_prueba.mdf"

    Para conectarme desde VB.NET utilizo la siguiente cadena de conexión que he modificado y adaptado a mis necesidades.

        m_cn.ConnectionString = "Initial Catalog=" & nombreBBDD & ";Data Source=" & ipServidor _
        & "," & ptoServidor & ";user id =" & usuarioBBDD & ";password = " & claveBBDD & ";"

    Así es como estoy trabajando hasta ahora en mis proyectos y funciona perfectamente. :)

    El problema viene ahora..  

    Funciona perfectamente la aplicación en modo cliente servidor y estoy "encantado" porque de hecho llevo muchos años desarrollando para aplicaciones con  VB y access porque no conocía la potencia de SQLSERVER hasta hace una semana escasa que instalé, preguntando aqui y mirando en otras páginas, el SQL SERVER EXPRESS por primera vez. Imaginen lo perdido que ando...

    El caso es que para aplicaciones "sencillas" como por ejemplo la típica agenda que necesita conectar a una bbdd local,  no quiero estar dependiendo de instalar un servidor en otro equipo y tener 2 pcs encendidos continuamente para acceder a los datos. Muy distinto sería el escenario en que se tratara de una aplicación donde muchos usuarios fueran a trabajar de forma conjunta y accedieran varios usuarios a la vez a la BBDD. En ese caso, sería lógico instalar un server en un equipo aparte y dedicarlo exclusivamente a eso como estoy haciendo ahora mismo..

    He leído acerca del "LOCAL DB" que actuaría como un proceso en lugar de como un servicio, pero no es eso lo que quiero ya que tengo entendido que las bbdds estarían limitadas a 4GB (unos dicen 4 y otros dicen 10GB...) o algo así, es decir, no tendría los 10GB de tamaño que ofrece el SQL SERVER EXPRESS. Además que no tengo ni idea de cómo se usa localdb. Se que lo tengo instalado porque lo marqué al instalar SQL SERVER Express 2012.

    Yo lo que quiero es poder tener esa misma base de datos que tengo en el servidor local en mi equipo por ejemplo en C:\MIAPLICAION\BBDD\nombre_bbdd.mdf y que cuando finalice el programa simplemente al crear el paquete de instalación tenga que adjuntar el ficherito de BBDD al proyecto de forma que lo pueda guardar en un CD e instalarlo en cualquier PC sin necesidad de tener instalada una instancia de SQL SERVER en el pc donde quiera instalar esto..

    Por ejemplo, tengo una aplicación desarrollada desde hace años en VB6 que se conecta a una BBDD de Access 2007 y la llevo usando de forma personal durante 10 años. En ella tengo información de todos mis proyectos, usuarios y contraseñas de servicios de internet y aplicaciones, agenda, revisiones del coche, etc,etc. Empezó siendo una aplicación pequeñita y la he ido aumentando con los años en funcionalidad según lo he ido necesitando. El caso es que simplemente necesito el ejecutable .EXE y el fichero .mdb de la bbdd de access y eso es todo..  

    ¿Se puede hacer esto con SQL SERVER EXPRESS? Es decir, tener mi BBDD en la carpeta que yo quiera (como si de una bbdd de access se tratara) y listo sin tener que preocuparme que mi BBDD local esté limitada en tamaño y sin tener que instalar SQL SERVER EXPRESS en otro pc para que actue de servidor?

    Hice la prueba y empaqueté el proyecto con vstudio 2012 express con clic-once y en los requisitos puse que el usuario necesitaba "sql server express". Lo instalé en un portatil recién formateado.
    Me detectó que no estaba instalado sql server y el solito (el programa de instalació), se lo descargó (el motor de sqlserver) y me instaló el programa. En este caso no tuve ningún problema pq mi cadena de conexión apunta al servidor local en su cadena de conexión (192.168.1.Ip, Puerto....) pero si le quiero hacer un programa a alguien y ese alguien simplemente no quiere o no puede costearse otro pc /servidor a parte del suyo y quiere simplemente instalar el programa y empezar a trabajar sin necesidad de instalar nada más? 

    ¿Cómo lo hago? No sé si me he explicado...

    No soy un experto en SQL eso lo quiero dejar claro y por eso pido ayuda por si alguno me puede echar una manita.

    Lo que quiero es que me diga alguien lo sguiente:

    1) Como extraigo la BBDD del servidor local y lo exporto a una carpeta...

    Yo lo que hice para hacerme una copia fue desde sql express escribí la siguiente consulta:
    BACKUP DATABASE [db_prueba] TO DISK = N'C:\backup\prueba.bak

    Y me hizo una copia en C:\backup con el nombre prueba.bak... Pues ese fichero es el que quiero "renombrar" luego por el nombre que yo quiera y copiarlo en una carpeta local del equipo cliente... ¿Se puede hacer como lo he hecho yo? Puedo cambiarle el nombre a prueba.bak por "db_prueba.mdf" sin más y utilizar ese archivo como Base de datos en una carpeta del equipo donde instalaré el pograma o adjuntarlo al proyecto de VB?¿

    2) Qué cadena de conexión utilizo en mi código de VBNET para conectarme ? ¿Qué me recomiendan?

    Muchísimas gracias a tod@s de antemano.

    Un saludo :)





    • Edited by OMIXAM Sunday, July 21, 2013 5:56 PM
    Friday, July 19, 2013 10:57 AM

Answers

  • Algunas aclaraciones:

    Una base de datos de SQL Server tiene tres tipos de ficheros:

    • Fichero primario: tiene extensión mdf y tiene que haber uno y solo uno:
    • Ficheros secundarios: tienen extensión ndf y puede haber 0 o más.
    • Ficheros del registro de transacciones: tienen extensión ldf y tiene que haber al menos uno.

    Para obtener el fichero mdf de una base de datos y que sirva para luego anexarla en el mismo u otro servidor SQL Server tienes que desadjuntarla/desanexarla (detach). Luego copias el fichero mdf a donde quieras, puedes por supuesto incluirlo en tu programa de instalación. Para tener disponible la base de datos en un servidor de SQL Server sólo tienes que anexar (attach) el fichero mdf junto con los ndf's si existen (aunque en tu caso no). Cuando anexas la base de datos, si no proporcionas los ficheros del registro de transacciones, SQL Server te hace un favor creando uno por ti.

    En cuanto a tu pregunta de tenerlo todo en una máquina:

    La forma más fácil de tener una aplicación con una base de datos de SQL Server incluida y que funcione todo en una única máquina es usar LocalDB. LocalDb es parte de SQL Server Express 2012, así que necesitas instalar SQL Server Express 2012 junto con tu aplicación. LocalDb es opcional así que hay que marcarlo.

    Con localDB, el fichero mdf que incluyas con la aplicación debe estar en algún sitio dentro de C:\Users\ElUsuario, típicamente en la carpeta de documentos o en algún sitio más escondido como D:\Users\ElUsuario\AppData\Local\MiEmpresa\MiApp. Esto es necesario porque se va a acceder al fichero mdf con las credenciales del usuario y por tanto tiene que estar en un sitio donde el usuario tenga permiso para leer y escribir.

    Con localDB, la cadena de conexión tiene esta pinta:

    Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=D:\Users\jesus.lopez\AppData\Local\MiEmpresa\MiApp\MiDB.mdf
    Cuando abres la conexión por primera vez, se levanta automáticamente una instancia de LocalDb y se anexa automáticamente la base de datos. Cuando se cierra la aplicación la base de datos se cierra y la instancia se apaga (shutdown)

    Tambien es posible tener la base de datos en una instancia regular de SQL Server Express en la misma máquina que la aplicación. Pero la cosa se complica. En el proceso de instalación de la aplicación deberás anexar la base de datos (el fichero mdf) a la instancia de SQL Server Express usando la instrucción CREATE DATABASE FOR ATTACH. Además existen otras implicaciones de seguridad. Quien ejecute el programa de instalación debe ser un administrador de la máquina y habrá que crear inicios de sesión en SQL Server y mapearlo con el usuario de la base de datos. En este caso la cadena de conexión que estás usando te vale sólo hay que poner Nombre Servidor/IP = localhost

    Wednesday, July 24, 2013 9:28 AM
  • >>  Se queda adjuntada como un fichero físico (.mdf) y yo lo que quiero es volver a referirme a esa bbdd por su nombre lógico (db_gescontact5). <<

    No se queda adjuntada como un fichero físico, lo único que pasa es que el nombre de la base de datos es ahora igual al nombre del fichero. Solo tienes que renombrar la base de datos y listo. O también puedes adjuntarla y poner el nombre al mismo tiempo con esta instrucción:

    CREATE DATABASE db_gescontact5
    ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\db_gescontact5.mdf') 
    FOR ATTACH 

    Hola de nuevo Jesús López y disculpa no haberte respondido antes.

    Ok! Ya lo he probado y  funciona a la perfección! :)

    Muchísimas gracias por tu ayuda y perdona por ser tan pesado :)

    Saludos! :)

    • Marked as answer by OMIXAM Monday, July 29, 2013 11:37 PM
    Monday, July 29, 2013 11:37 PM

All replies

  • ¿Nadie sabe como hacerlo? ....
    Friday, July 19, 2013 2:19 PM
  • Eiiiii, ¿Nadie aún? :(

    Sunday, July 21, 2013 5:58 PM
  • Hola.

    Sobre cómo extraer la base de datos del servidor local, como tú dices, una de las formas es esa que has hecho, con un backup. Luego lo restauras en otro lugar y ya sólo tendrías que tener en cuenta el login y poco más, pero ese es el camino. Revisa la sentencia "restore":

    http://msdn.microsoft.com/es-es/library/ms186858.aspx

    Como puedes comprobar en el link, cuando haces el restore puedes cambiar la ruta en la que se realiza y el nombre de la base de datos.

    De los muchos puntos que tienes confusos, te resalto lo del nombre de la base de datos y el nombre de los ficheros que la componen. Son dos cosas independientes, cuando la base de datos está accesible desde el servidor (está adjuntada o conectada, no hay traducciones buenas), sólo puedes referirte a ella por el nombre lógico. Y cuando no lo está, simplemente no está. El nombre lógico no lleva extensión, tu base de datos no creo que se llame "db_prueba.mdf", y ese será el problema de conexión que tienes. No lo podemos asegurar porque no nos pasas la cadena de conexión entera, sólo lo imagino, pero eso despejaría las dudas, porque puede que estés intentando usar una cadena de conexión "normal" para una LocalDB, como indico a continuación.

    Sobre LocalDB, que son una particularidad muy concreta dentro de SQL Server, tienes información aquí:

    http://msdn.microsoft.com/es-es/library/hh510202.aspx

    Esto último puede o no interesarte dadas tus circunstancias. Parece ser que sí cubriría una parte de tus necesidades. Las cadenas de conexión en LocalDB son diferentes al resto, y hacen referencia al fichero físico, en lugar de a la base de datos (llevan el parámetro "AttachDBFileName"). En el link que te he puesto tienes un ejemplo de ello.

    Si tienes dudas, nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    Monday, July 22, 2013 6:28 PM
  • Hola OMIXAM

    Si lo que quieres es tener tu DB en una carpeta del proyecto sin necesidad de instalar el SQL server, te recomendaría que uses el SQL Server CE, lo que puedes hacer es adjuntar la DB al proyecto.

    http://msdn.microsoft.com/es-es/library/aa983341(v=vs.80).aspx

    http://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx

    Espero que sea de tu ayuda.

    Saludos!!!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    Monday, July 22, 2013 11:20 PM
  • Hola. Algo complementario y que me gustaría dejar en claro es que cuando trabajas en SQL Server, en este caso la edición Express, necesitas restaurar la copia de respaldo que has hecho en otro PC o servidor en donde tengas SQL Server edición Express o incluso alguna de las que tiene SQL Server.

    Por otra parte, tienes que validar en qué puerto está instalado SQL Server edición Express en la otra computadora porque esta edición instala una instancia nombrada y dicha instalación no va al puerto 1433 que es el puerto por defecto de SQL Server. Mayores detalles en este post en mi blog.

    Así que, como bien dice Alberto, danos más detalles y ten presente mi comentario para que tengas claridad sobre lo que puedes y no puedes hacer dependiendo de tu requerimiento.

    Saludos,


    Guillermo Taylor F.
    IT Pro & Xbox gamer
    My blog

    Tuesday, July 23, 2013 12:09 AM
  • buenas dias omixam.

    lo que debe hacer es una programacion en tu cadena. aver como te explico.

    seleccionar como quiere conectarse si local o remotamente.

    hacer un control de esa variable y cambiar tu cadena .

    si es remoto usa :

    m_cn.ConnectionString = "Initial Catalog=" & nombreBBDD & ";Data Source=" & ipServidor _
        & "," & ptoServidor & ";user id =" & usuarioBBDD & ";password = " & claveBBDD & ";"

    si es local : 

    creas un attachment de la db que la tendras en una carpeta de tu proyecto.

    m_cn.ConnectionString ==" Server=.\SQLExpress;AttachDbFilename="Ruta db" ;Database=dbname;
    Trusted_Connection
    =Yes;user id =" & usuarioBBDD & ";password = " & claveBBDD & ";" 

    asi deberia conectarse a tu db tanto local como remoto.

    saludos

    Tuesday, July 23, 2013 2:21 PM
  • buenas dias omixam.

    lo que debe hacer es una programacion en tu cadena. aver como te explico.

    seleccionar como quiere conectarse si local o remotamente.

    hacer un control de esa variable y cambiar tu cadena .

    si es remoto usa :

    m_cn.ConnectionString = "Initial Catalog=" & nombreBBDD & ";Data Source=" & ipServidor _
        & "," & ptoServidor & ";user id =" & usuarioBBDD & ";password = " & claveBBDD & ";"

    si es local : 

    creas un attachment de la db que la tendras en una carpeta de tu proyecto.

    m_cn.ConnectionString ==" Server=.\SQLExpress;AttachDbFilename="Ruta db" ;Database=dbname;
    Trusted_Connection
    =Yes;user id =" & usuarioBBDD & ";password = " & claveBBDD & ";" 

    asi deberia conectarse a tu db tanto local como remoto.

    saludos


    Buenas tardes Deyvi Royer Peña Pimentel desde España :)

    Muchas gracias por la respuesta y me la apunto para cuando sepa como crear los ficheros .MDF o en su defecto convertir la base de datos que está en el servidor y cuyo nombre lógico es "db_gescontact5" a un fichero .MDF..

    Con esto último tendría la cadena si se tratara de un fichero .MDF según te entendí no?

    En cuanto a lo de crearme una variable según el tipo de conexión, ya lo había pensado. De hecho tengo un apartado sólo para eso en la aplicación, ahora falta que funcione! jeje ;)

    Saludos!


    • Edited by OMIXAM Tuesday, July 23, 2013 3:03 PM asdfadsf
    Tuesday, July 23, 2013 2:55 PM
  • Hola.

    Sobre cómo extraer la base de datos del servidor local, como tú dices, una de las formas es esa que has hecho, con un backup. Luego lo restauras en otro lugar y ya sólo tendrías que tener en cuenta el login y poco más, pero ese es el camino. Revisa la sentencia "restore":

    http://msdn.microsoft.com/es-es/library/ms186858.aspx

    Como puedes comprobar en el link, cuando haces el restore puedes cambiar la ruta en la que se realiza y el nombre de la base de datos.

    De los muchos puntos que tienes confusos, te resalto lo del nombre de la base de datos y el nombre de los ficheros que la componen. Son dos cosas independientes, cuando la base de datos está accesible desde el servidor (está adjuntada o conectada, no hay traducciones buenas), sólo puedes referirte a ella por el nombre lógico. Y cuando no lo está, simplemente no está. El nombre lógico no lleva extensión, tu base de datos no creo que se llame "db_prueba.mdf", y ese será el problema de conexión que tienes. No lo podemos asegurar porque no nos pasas la cadena de conexión entera, sólo lo imagino, pero eso despejaría las dudas, porque puede que estés intentando usar una cadena de conexión "normal" para una LocalDB, como indico a continuación.

    Sobre LocalDB, que son una particularidad muy concreta dentro de SQL Server, tienes información aquí:

    http://msdn.microsoft.com/es-es/library/hh510202.aspx

    Esto último puede o no interesarte dadas tus circunstancias. Parece ser que sí cubriría una parte de tus necesidades. Las cadenas de conexión en LocalDB son diferentes al resto, y hacen referencia al fichero físico, en lugar de a la base de datos (llevan el parámetro "AttachDBFileName"). En el link que te he puesto tienes un ejemplo de ello.

    Si tienes dudas, nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    Question

    Buenas tardes Alberto López y gracias por responder :)

    A ver, quizás no me he explicado bien o me he liado al intentar explicarme, disculpa...Lo que tengo es efectivamente Sql Server Express 2012 instalado en un pc que hace de servidor (independiente del pc donde tengo mi proyecto VBNET).  Por lo que es totalmente correcto lo de que no tengo un fichero de base de datos (.mdf) sino una instancia a una base de datos llamada "db_gescontact5" que es la que estoy trabajando ahora..

    En cuanto a mi cadena de conexión es la siguiente:

    m_cn.ConnectionString = "Initial Catalog=" & nombreBBDD & ";Data Source=" & ipServidor _
        & "," & ptoServidor & ";user id =" & usuarioBBDD & ";password = " & claveBBDD & ";"

    Todas las variables de conexión las tengo en un módulo dentro del proyecto que he creado a tal fin.

    Las variables son las siguientes: nombreBBDD, ipServidor, PtoServidor, usuarioBBDD y ClaveBBDD y lo que hago en la cadena es simplemente sustituir los valorse de mi conection string por las variables quedando así:

    m_cn.ConnectionString = "Initial Catalog=db_gescontact5;Data Source = 192.168.0.48,45000; user id=MIUSUARIO; password =MIPASSWORD"

    La base de datos se llama db_gescontact y está en un pc con sql server express 2012. Dicha base de datos la cree conSQL SERVER MANAGMENT STUDIO.

    En mi aplicación he creado un apartado donde configurar los parámetros de conexión del servidor como se puede ver en esta imagen..

    Dicha configuración se guarda en el registro de Windows y el programa la lee cada vez que va a realizar una conexión.

    En este caso esto es ideal (o eso creo) para conectar el proyecto a una base de datos externa como es en este caso donde tengo un sqlserver express en otro pc simplemente con modificar la ip, puerto y poco más... No sé si se debe hacer esto así en un programa ya que es la primera vez que hago un programa de este tipo...

    Pero... ¿Y si quisiera que esa base de datos db_gescontact5 la pudiera "incluir" en un nuevo proyecto de forma que no dependa de un servidor externo? Al decir incluir no me refiero a agregarla como un componente del proyecto sino que sea como un fichero externo del proyecto al cual conectar como si de un fichero .MDB de access se tratase..

    He probado a hacer un backup de la bbdd y a ponerle como nombre resultante el mismo, es decir, db_gescontact pero añadiendo .MDF al final pero cuando abro el SQL SERVER MANAGMENT STUDIO e intento "Adjuntar la base de datos" o "Restaurar la copia de seguridad" me da un error y me dice que la bbdd no es una bbdd principal o algo así... Vamos, que no me deja ¬¬

    En definitiva que me lio! Quiero que esa base de datos que existe en el servidor llamada,  o mejor dicho, cuyo nombre lógico es db_gescontact5 pueda utilizarla en otro proyecto pero incluyéndola como un fichero, es decir, que los datos se guarden en un fichero .mdf y no en una "instancia" de sql server a fin de que si hago una pequeña aplicación que requiera guardar datos sencillos y que sea mono usuario no dependa de un servidor externo con una bbdd al cual conectar...

    No sé si me he explicado bien...

    Esa base de datos cuyo nombre lógico es db_gescontact5 y que se encuentra en el servidor (existe) y,  quisiera junto con sus datos (no quiero perderlos) poderla utilizar como fichero .mdf para lo que necesito primero saber cómo guardar esa base datos con nombre lógico db_gescontact5 como un fichero .MDF y posteriormente qué cadena de conexión utilizar para este tipo de conexión.

    Estuve mirando el artículo de LocalDB el cual he sabido hace poco que es una novedad en sql server 2012 y está muy completo, de hecho ya lo había leído el otro día pero claro, para utilizarlo tendría que crearme la bbdd desde 0; no me sirve la que ya tengo creada en la base de datos... Tengo entendido que para usar LOCALDB simplemente en mi SQL MANAGMENT pongo (LocalDB)\v11.0 en el nombre del servidor y selecciono autenticación de windows y ya conecto, pero ¿Cómo creo una base de datos basada en un fichero .mdf? ES que estoy un poco perdido..

    En cuanto a esto que me comentabas:

    "El nombre lógico no lleva extensión, tu base de datos no creo que se llame "db_prueba.mdf", y ese será el problema de conexión que tienes. "

    Efectivamente, fue un lapsus, disculpa. Es que con las prisas al escribir y que soy nuevo con SQL SERVER me lié un poco... xD

    db_prueba.mdf NO EXISTE, porque no sé como pasar esa BBDD cuyo nombre lógico es db_gescontact5 y que se encuentra en 192.168.1.48 en el puerto 45000 (porque lo configuré así al instalar sql server express en el equipo servidor) a un fichero .MDF en mi pc...

    Mi intención es que mi proyecto VB pueda conectarse tanto a una bbdd en un servidor como a una base de datos "local"  simplemente configurándolo y que no importe si la base de datos está creada en un servidor de modo que pueda guardarla como un fichero .mdf..

    Creo que no me dejo nada más...

    Muchísimas gracias por tu ayuda y perdona mi demora al responder. Leí el mensaje anoche pero quería tener un hueco para responder con calma.

    Añadido:

    Antes olvidé comentar que el archivo .MDF no quiero que se encuentre en el servidor (192.168.1.48,45000) sino localmente en un equipo cliente sin necesidad de utilizar el servidor...
    Tuesday, July 23, 2013 3:00 PM
  • Hola. Algo complementario y que me gustaría dejar en claro es que cuando trabajas en SQL Server, en este caso la edición Express, necesitas restaurar la copia de respaldo que has hecho en otro PC o servidor en donde tengas SQL Server edición Express o incluso alguna de las que tiene SQL Server.

    Por otra parte, tienes que validar en qué puerto está instalado SQL Server edición Express en la otra computadora porque esta edición instala una instancia nombrada y dicha instalación no va al puerto 1433 que es el puerto por defecto de SQL Server. Mayores detalles en este post en mi blog.

    Así que, como bien dice Alberto, danos más detalles y ten presente mi comentario para que tengas claridad sobre lo que puedes y no puedes hacer dependiendo de tu requerimiento.

    Saludos,


    Guillermo Taylor F.
    IT Pro & Xbox gamer
    My blog

    Buenas tardes Guillermo Taylor F. y gracias por responderme.

    Efectivamente, esa parte ya la tengo controlada y en mi proyecto incluso hice una sección que hace un backup de la base de datos cuyo nombre lógico es db_gescontact5 en la carpeta "backups" del servidor sql server express 2012 creandose el fichero db_gescontact5.bak. El paso de convertir esa bbdd "extraida y salvada" del servidor a un fichero .MDF es el que no sé hacer ni sé si se puede hacer esto que quiero o no...

    En cuanto a lo que comentas del puerto,  me costó un poco entenderlo hasta que un usuario en un post anterior mio me recomendó un blog  también donde venía paso a paso como habilitar el tcp ip y demás detalles de conexión y gracias a eso lo conseguí instalar.. He intentado encontrar el post pero no lo encuentro.

    Lo que quiero hacer para no repetir todo el rollo de nuevo y que se me duerman es lo que le respondí a Alberto López Grande, es decir, quiero saber como pasar una base de datos SQL SERVER a un fichero .mdf y poder utilizarlo luego bien con LocalDB ó bien con SQL Compact Edition.

    Muchísimas gracias por tu ayuda y por el enlace :)

    Saludos!


    Tuesday, July 23, 2013 3:01 PM
  • Hola OMIXAM

    Si lo que quieres es tener tu DB en una carpeta del proyecto sin necesidad de instalar el SQL server, te recomendaría que uses el SQL Server CE, lo que puedes hacer es adjuntar la DB al proyecto.

    http://msdn.microsoft.com/es-es/library/aa983341(v=vs.80).aspx

    http://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx

    Espero que sea de tu ayuda.

    Saludos!!!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    Question
    No puede votar su propia entrada

    Buenas tardes  Pedro Ávila y muchas gracias por responder a ti también :)

    Si, había oído hablar también de la versión compact pero estamos en las mismas porque en el enlace que facilitaste sólo viene como descargar e instalar una bbdd de ejemplo y como conectarla pero no dice como CREAR ese tipo de bases de datos...

    Tengo entendido que LocalDB de SQL SERVER 2012 es lo que era antes la versión COMPACT no?

    ¿Cuál debería utilizar?

    Gracias por tu ayuda :)

    Tuesday, July 23, 2013 3:04 PM
  • Hola

    Si vas a usar una DB en cualquiera de las versiones que hay debes de elegir una de ellas de acuerdo a la envergadura el tamaño de tu proyecto.

    Si tu proyecto es por ejemplo un sistema de ventas donde el cual va ha tener 10 puntos de venta lo mas certero sería preparar un servidor, donde se pueda instalar el gestor de base de datos y las terminales se conecten a el.

    Pero si solo tu app es un sistema personal que lo va a usar un solo usuario como expones lineas arriba y no deseas usar access, tienes la opción de usar el SQL Server CE, la cual te permite adjuntar la db al proyecto en la cual la db la puedes poner en una carpeta dentro de tu proyecto, esta es la solución que yo haría si es que no quiero instalar un sql y no quiero usar access.

    Acá tienes un link donde puedes descargar un toolBox para el SQL CE

    http://sqlcetoolbox.codeplex.com/

    http://programmers.stackexchange.com/questions/56718/sql-server-ce-4-graphical-tools-for-designing-tables-etc

    Saludos!!! 


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    Tuesday, July 23, 2013 6:42 PM
  • Y sobre la cadena de conexión al adjuntar la db al proyecto la cadena de conexión se genera automaticamente, como por ejemplo está. La cadena de conexión se genera en un archivo app.conf

    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="NorthwindConnectionString"
                connectionString="Data Source=|DataDirectory|\Northwind.sdf"
                providerName="Microsoft.SqlServerCe.Client.4.0" />
        </connectionStrings>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
    </configuration>
    Ya no tendrías que usar un formulario para hacer la conexíón al Gestor de Base de Datos.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    Tuesday, July 23, 2013 6:47 PM
  • Algunas aclaraciones:

    Una base de datos de SQL Server tiene tres tipos de ficheros:

    • Fichero primario: tiene extensión mdf y tiene que haber uno y solo uno:
    • Ficheros secundarios: tienen extensión ndf y puede haber 0 o más.
    • Ficheros del registro de transacciones: tienen extensión ldf y tiene que haber al menos uno.

    Para obtener el fichero mdf de una base de datos y que sirva para luego anexarla en el mismo u otro servidor SQL Server tienes que desadjuntarla/desanexarla (detach). Luego copias el fichero mdf a donde quieras, puedes por supuesto incluirlo en tu programa de instalación. Para tener disponible la base de datos en un servidor de SQL Server sólo tienes que anexar (attach) el fichero mdf junto con los ndf's si existen (aunque en tu caso no). Cuando anexas la base de datos, si no proporcionas los ficheros del registro de transacciones, SQL Server te hace un favor creando uno por ti.

    En cuanto a tu pregunta de tenerlo todo en una máquina:

    La forma más fácil de tener una aplicación con una base de datos de SQL Server incluida y que funcione todo en una única máquina es usar LocalDB. LocalDb es parte de SQL Server Express 2012, así que necesitas instalar SQL Server Express 2012 junto con tu aplicación. LocalDb es opcional así que hay que marcarlo.

    Con localDB, el fichero mdf que incluyas con la aplicación debe estar en algún sitio dentro de C:\Users\ElUsuario, típicamente en la carpeta de documentos o en algún sitio más escondido como D:\Users\ElUsuario\AppData\Local\MiEmpresa\MiApp. Esto es necesario porque se va a acceder al fichero mdf con las credenciales del usuario y por tanto tiene que estar en un sitio donde el usuario tenga permiso para leer y escribir.

    Con localDB, la cadena de conexión tiene esta pinta:

    Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=D:\Users\jesus.lopez\AppData\Local\MiEmpresa\MiApp\MiDB.mdf
    Cuando abres la conexión por primera vez, se levanta automáticamente una instancia de LocalDb y se anexa automáticamente la base de datos. Cuando se cierra la aplicación la base de datos se cierra y la instancia se apaga (shutdown)

    Tambien es posible tener la base de datos en una instancia regular de SQL Server Express en la misma máquina que la aplicación. Pero la cosa se complica. En el proceso de instalación de la aplicación deberás anexar la base de datos (el fichero mdf) a la instancia de SQL Server Express usando la instrucción CREATE DATABASE FOR ATTACH. Además existen otras implicaciones de seguridad. Quien ejecute el programa de instalación debe ser un administrador de la máquina y habrá que crear inicios de sesión en SQL Server y mapearlo con el usuario de la base de datos. En este caso la cadena de conexión que estás usando te vale sólo hay que poner Nombre Servidor/IP = localhost

    Wednesday, July 24, 2013 9:28 AM
  • Algunas aclaraciones:

    Una base de datos de SQL Server tiene tres tipos de ficheros:

    • Fichero primario: tiene extensión mdf y tiene que haber uno y solo uno:
    • Ficheros secundarios: tienen extensión ndf y puede haber 0 o más.
    • Ficheros del registro de transacciones: tienen extensión ldf y tiene que haber al menos uno.

    Para obtener el fichero mdf de una base de datos y que sirva para luego anexarla en el mismo u otro servidor SQL Server tienes que desadjuntarla/desanexarla (detach). Luego copias el fichero mdf a donde quieras, puedes por supuesto incluirlo en tu programa de instalación. Para tener disponible la base de datos en un servidor de SQL Server sólo tienes que anexar (attach) el fichero mdf junto con los ndf's si existen (aunque en tu caso no). Cuando anexas la base de datos, si no proporcionas los ficheros del registro de transacciones, SQL Server te hace un favor creando uno por ti.

    En cuanto a tu pregunta de tenerlo todo en una máquina:

    La forma más fácil de tener una aplicación con una base de datos de SQL Server incluida y que funcione todo en una única máquina es usar LocalDB. LocalDb es parte de SQL Server Express 2012, así que necesitas instalar SQL Server Express 2012 junto con tu aplicación. LocalDb es opcional así que hay que marcarlo.

    Con localDB, el fichero mdf que incluyas con la aplicación debe estar en algún sitio dentro de C:\Users\ElUsuario, típicamente en la carpeta de documentos o en algún sitio más escondido como D:\Users\ElUsuario\AppData\Local\MiEmpresa\MiApp. Esto es necesario porque se va a acceder al fichero mdf con las credenciales del usuario y por tanto tiene que estar en un sitio donde el usuario tenga permiso para leer y escribir.

    Con localDB, la cadena de conexión tiene esta pinta:

    Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=D:\Users\jesus.lopez\AppData\Local\MiEmpresa\MiApp\MiDB.mdf
    Cuando abres la conexión por primera vez, se levanta automáticamente una instancia de LocalDb y se anexa automáticamente la base de datos. Cuando se cierra la aplicación la base de datos se cierra y la instancia se apaga (shutdown)

    Tambien es posible tener la base de datos en una instancia regular de SQL Server Express en la misma máquina que la aplicación. Pero la cosa se complica. En el proceso de instalación de la aplicación deberás anexar la base de datos (el fichero mdf) a la instancia de SQL Server Express usando la instrucción CREATE DATABASE FOR ATTACH. Además existen otras implicaciones de seguridad. Quien ejecute el programa de instalación debe ser un administrador de la máquina y habrá que crear inicios de sesión en SQL Server y mapearlo con el usuario de la base de datos. En este caso la cadena de conexión que estás usando te vale sólo hay que poner Nombre Servidor/IP = localhost

    Hola Jesús López y muchísimas gracias por la aclaración :)

    He modificado mi proyecto de forma que ahora el usuario puede configurar si desea utilizar una base de datos basada en un servidor sql express (con ip, puerto, usuario, contraseña, etc) o si por el contrario la bbdd será local para pequeños proyectos.

    Ya he desadjuntado del servidor la BBDD (hice antes una copia de seguridad) y copié el archivo .mdf y el .ldf a una carpeta dentro de la carpeta del proyecto (en concreto especifiqué (application.startuppath\data\) y modifiqué la cadena de conexión por la de LocalDB y funciona a la perfección.

    Sólo me quedan 3 dudas y ya doy por cerrado el hilo:

    1) La más importante: Cuando "desadjunté" la BBDD del servidor en (192.168.1.48) para obtener el fichero .mdf intenté después volver a adjuntarla en el mismo servidor pero me daba un error. Lo probé varias veces y la única forma que tuve de recuperar la BBDD fue "Restaurando" la copia de seguridad (fichero .bak) que había generado antes de "des-adjuntar" la bbdd.. ¿Es normal este comportamiento? El error que me daba era algo del sistema operativo...

    2) ¿Existe algún tamaño límite para la bbdd si la utilizo como fichero .mdf en lugar de que exista dentro de un servidor local? Es decir, el fichero .MDF tiene algun límite en cuanto a tamaño?

    3) ¿Me podría aclarar un poco más lo de poner la BBDD dentro de una carpeta del perfil del usuario? Es decir, en users\USUARIO? Es que hice la prueba poniendo el fichero .MDF en el raiz de C:\ y conecté a la bbdd y modifiqué registros sin ningún tipo de problemas... ¿Es normal esto?

    Muchisimas gracias por todo :)

    Un saludo!


    • Edited by OMIXAM Wednesday, July 24, 2013 8:07 PM 12312
    • Marked as answer by OMIXAM Monday, July 29, 2013 11:37 PM
    • Unmarked as answer by OMIXAM Tuesday, July 30, 2013 6:39 PM
    Wednesday, July 24, 2013 8:02 PM
  • Hola

    Si vas a usar una DB en cualquiera de las versiones que hay debes de elegir una de ellas de acuerdo a la envergadura el tamaño de tu proyecto.

    Si tu proyecto es por ejemplo un sistema de ventas donde el cual va ha tener 10 puntos de venta lo mas certero sería preparar un servidor, donde se pueda instalar el gestor de base de datos y las terminales se conecten a el.

    Pero si solo tu app es un sistema personal que lo va a usar un solo usuario como expones lineas arriba y no deseas usar access, tienes la opción de usar el SQL Server CE, la cual te permite adjuntar la db al proyecto en la cual la db la puedes poner en una carpeta dentro de tu proyecto, esta es la solución que yo haría si es que no quiero instalar un sql y no quiero usar access.

    Acá tienes un link donde puedes descargar un toolBox para el SQL CE

    http://sqlcetoolbox.codeplex.com/

    http://programmers.stackexchange.com/questions/56718/sql-server-ce-4-graphical-tools-for-designing-tables-etc

    Saludos!!! 


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    Hola de nuevo Pedro Ávila y gracias de nuevo por tu ayuda. :)

    En principio lo que quiero es eso, pequeños proyectos. La mayoría son pequeñas utilidades del tipo (agendas, gestores de información, etc) pero también quiero hacer un proyecto grande para varios usuarios por lo que decidí montar el sql server express para que varios usuarios puedan trabajar a la vez.

    De moment creo que con el LocalDB de SQLEXPRESS 2012 que viene a ser lo que era el SQL Compact Edition voy bien para mis pequeños proyectos. PAra el resto ya tiro de servidor..

    Un saludo y gracias otra vez :)


    • Edited by OMIXAM Wednesday, July 24, 2013 8:07 PM asdfads
    Wednesday, July 24, 2013 8:07 PM
  • No debería darte ningún problema al adjuntar de nuevo la base de datos. Si te da un error, deberías decirnos cual es exactamente el mensaje de error y así poderte ayudar, si no, me temo que será muy difícil.

    No es necesario incluir el fichero ldf para usar después la base de datos, ni siquiera para desadjuntarla. El fichero ldf solo es necesario si tu servidor SQL, se va al carajo y tienes que llevarte la base de datos a otro servidor y adjuntarla allí.

    Supongo que cuando dices "usar la base de datos como mdf" te refieres a usar LocalDB. Las limitaciones de LocalDB son las mismas (básicamente y en tu caso completamente) que una instancia regular de SQL Server Express.

    Con LocalDb las credenciales del usuario son las que se usan para acceder a la base de datos. Así que si no has tenido nigún problema es porque a lo mejor eres el administrador de la máquina y tienes deshabilitado UAC.

    Thursday, July 25, 2013 2:18 PM
  • No debería darte ningún problema al adjuntar de nuevo la base de datos. Si te da un error, deberías decirnos cual es exactamente el mensaje de error y así poderte ayudar, si no, me temo que será muy difícil.

    No es necesario incluir el fichero ldf para usar después la base de datos, ni siquiera para desadjuntarla. El fichero ldf solo es necesario si tu servidor SQL, se va al carajo y tienes que llevarte la base de datos a otro servidor y adjuntarla allí.

    Supongo que cuando dices "usar la base de datos como mdf" te refieres a usar LocalDB. Las limitaciones de LocalDB son las mismas (básicamente y en tu caso completamente) que una instancia regular de SQL Server Express.

    Con LocalDb las credenciales del usuario son las que se usan para acceder a la base de datos. Así que si no has tenido nigún problema es porque a lo mejor eres el administrador de la máquina y tienes deshabilitado UAC.

    Hola Jesús López y gracias por responder :)

    Te comento:

    Efectivamente cuando hablo de utilizar la base como fichero MDF me refiero a usar LocalDB.

    La base de datos está en un equipo que se llama "AME-PC" y la instancia SQL Server es SQLEXPRESS, es decir, conecto así: AME-PC\SQLEXPRESS ó bien (192.168.1.48,45000) si no estoy fisicamente en el servidor.

    El caso es que la base de datos cuyo nombre lógico es db_gescontact5 la tenía en el servidor AME-PC bajo la instancia SQLEXPRESS y la desadjunté para usarla como LOCALDB. Me llevé el fichero .mdf a otro equipo y allí me funciona perfectamente con LOCALDB.

    El problema viene cuando quiero hacerlo a la inversa, es decir, coger el fichero .MDF que uso como LocalDB y llevarlo nuevamente a la instancia de servidor como base de datos , es decir, adjuntando de nuevo la BBDD y refiriéndome a ella por su nombre lógico (db_gescontact5) en lugar de por un nombre de fichero (.mdf)

    Cuando intenté adjuntar nuevamente la base de datos este es el error que recibía:

    Simplemente me muestra eso. Que le ha sido imposible abrir el fichero MDF. C:\BBDD es una ruta local en el equipo servidor. Copie el archivo .mdf del equipo cliente al equipo servidor en la carpeta C:\BBDD pero no hay manera de que me deje adjuntarla de nuevo al servidor ...

    Si hago clic en "Mostrar detalles técnicos /Show tecnical details" obtengo esta información:

    ===================================

    Attach database failed for Server 'AME-PC\SQLEXPRESS'.  (Microsoft.SqlServer.Smo)

    ------------------------------
    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.3000.0+((SQL11_PCU_Main).121019-1322+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

    ------------------------------
    Program Location:

       at Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)
       at Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile.Attach()
       at Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabase.SendDataToServer()

    ===================================

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------
    Program Location:

       at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
       at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
       at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)
       at Microsoft.SqlServer.Management.Smo.Server.AttachDatabaseWorker(String name, StringCollection files, String owner, AttachOptions attachOptions)
       at Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)

    ===================================

    Unable to open the physical file "C:\BBDD\db_gescontact5.mdf". Operating system error 5: "5(Acceso denegado.)". (.Net SqlClient Data Provider)

    ------------------------------
    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.3128&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476

    ------------------------------
    Server Name: AME-PC\SQLEXPRESS
    Error Number: 5120
    Severity: 16
    State: 101
    Line Number: 1

    Saludos y gracias x la ayuda :)


    • Edited by OMIXAM Thursday, July 25, 2013 7:45 PM añadido
    Thursday, July 25, 2013 7:42 PM
  • No puedes adjuntar la base de datos porque seguramente la cuenta de servicio de SQL Server Express que de forma predeterminada es NT Authority\NetworkService (creo) o si no NT Service\NoMeAcuerdoQueCuenta no tiene permiso para acceder a la carpeta donde has puesto el fichero mdf. Puedes ver la cuenta de servicio de SQL Server en la herramienta "Services" de Windows o con el SQL Server Configuration Manager.

    Hay dos soluciones:

    1. Pon el fichero mdf en la misma carpeta donde están los fichero de la base de datos master. Allí seguro que la cuenta de servicio tiene permiso.
    2. Dale a la cuenta de servicio de SQL Server Express permisos NTFS en la carpeta donde vayas a poner el fichero mdf.

    Para ver donde están los archivos de la base de datos master ejecuta la siguiente instrucción SQL en el SQL Server Management Studio:

    USE master
    SELECT * FROM sys.database_files

    Friday, July 26, 2013 5:33 PM
  • No puedes adjuntar la base de datos porque seguramente la cuenta de servicio de SQL Server Express que de forma predeterminada es NT Authority\NetworkService (creo) o si no NT Service\NoMeAcuerdoQueCuenta no tiene permiso para acceder a la carpeta donde has puesto el fichero mdf. Puedes ver la cuenta de servicio de SQL Server en la herramienta "Services" de Windows o con el SQL Server Configuration Manager.

    Hay dos soluciones:

    1. Pon el fichero mdf en la misma carpeta donde están los fichero de la base de datos master. Allí seguro que la cuenta de servicio tiene permiso.
    2. Dale a la cuenta de servicio de SQL Server Express permisos NTFS en la carpeta donde vayas a poner el fichero mdf.

    Para ver donde están los archivos de la base de datos master ejecuta la siguiente instrucción SQL en el SQL Server Management Studio:

    USE master
    SELECT * FROM sys.database_files

    Hola de  nuevo Jesús López y muchisimas gracias por tu ayuda :)

    Lo pensé en su momento que era un problema de permisos y efectivamente así era. Copié el fichero db_gescontact5.mdf y db_gescontact5.log a la carpeta C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA del servidor y la pude adjuntar sin problema alguno salvo con una excepción... Se queda adjuntada como un fichero físico (.mdf) y yo lo que quiero es volver a referirme a esa bbdd por su nombre lógico (db_gescontact5). ¿Para qué? Pues por si tengo una base de datos usando LocalDB lleno de tablas y datos y en un futuro quiero q esa misma BBDD esté en un SQL SERVER EXPRESS como base de datos "creada en el servidor" con su instanciamiento (por ejemplo \Server\SQLEXPRESS" y que puede ser accedida desde cualquier equipo denro de una red, es decir para aplicaciones multi usuarios.

    ¿Es posible hacer eso o una vez que desadjunto una bbdd de SQL SERVER EXPRESS y me conecto a esa BBDD utilizando LocalDB ya no me sirve esa BBDD? Es que esta es mi principal duda...

    Lo que quiero decir es que ahora en el SQL SERVER MANAGMENT STUDIO en las bases de datos no me aparece "db_gescontact5", es decir  su nombre "lógico" sino la ruta del archivo .MDF , es decir, \ruta\db_gescontact5.mdf .... y yo quiero que aparezca como "db_gescontact5" a secas... ¿Es posible eso?

    Muchas gracias por tu ayuda y perdona por ser tan pesado ¬¬

    Saludos y buen fin de semana :)

    Añadido: Se me olvidó comentarlo antes pero intenté adjuntar la BBDD sólo con el archivo .mdf y me daba el mismo error. Copié el archivo .log (db_gescontact5.log) a la carpeta y lo adjuntó sin problema. Tampoco funcionaba si le cambiaba el nombre al fichero .MDF. Debía adjuntarlo con el mismo nombre o daba error.

    • Edited by OMIXAM Saturday, July 27, 2013 10:52 AM sdfgsdf
    Saturday, July 27, 2013 10:50 AM
  • >>  Se queda adjuntada como un fichero físico (.mdf) y yo lo que quiero es volver a referirme a esa bbdd por su nombre lógico (db_gescontact5). <<

    No se queda adjuntada como un fichero físico, lo único que pasa es que el nombre de la base de datos es ahora igual al nombre del fichero. Solo tienes que renombrar la base de datos y listo. O también puedes adjuntarla y poner el nombre al mismo tiempo con esta instrucción:

    CREATE DATABASE db_gescontact5
    ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\db_gescontact5.mdf') 
    FOR ATTACH 

    Monday, July 29, 2013 7:46 AM
  • >>  Se queda adjuntada como un fichero físico (.mdf) y yo lo que quiero es volver a referirme a esa bbdd por su nombre lógico (db_gescontact5). <<

    No se queda adjuntada como un fichero físico, lo único que pasa es que el nombre de la base de datos es ahora igual al nombre del fichero. Solo tienes que renombrar la base de datos y listo. O también puedes adjuntarla y poner el nombre al mismo tiempo con esta instrucción:

    CREATE DATABASE db_gescontact5
    ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\db_gescontact5.mdf') 
    FOR ATTACH 

    Hola de nuevo Jesús López y disculpa no haberte respondido antes.

    Ok! Ya lo he probado y  funciona a la perfección! :)

    Muchísimas gracias por tu ayuda y perdona por ser tan pesado :)

    Saludos! :)

    • Marked as answer by OMIXAM Monday, July 29, 2013 11:37 PM
    Monday, July 29, 2013 11:37 PM
  • ¿Después de todo al final marcas tu propia respuesta como la respuesta válida?

    Debes marcar tu respuesta como la respuesta válida cuando tú mismo encuentras la solución y la pones aquí. Pero tú no has encontrado la solución. Deberías marcar como respuesta válida las respuestas que veas que son la solución a tu problema. Y votar las respuestas que te parezcan útiles.

    Responder a las preguntas lleva su tiempo y trabajo, y lo hacemos gratis. No estaría mal que por lo menos nos lleváramos algún puntito si es que nuestra aportación te ha ayudado.

    Tuesday, July 30, 2013 7:52 AM
  • ¿Después de todo al final marcas tu propia respuesta como la respuesta válida?

    Debes marcar tu respuesta como la respuesta válida cuando tú mismo encuentras la solución y la pones aquí. Pero tú no has encontrado la solución. Deberías marcar como respuesta válida las respuestas que veas que son la solución a tu problema. Y votar las respuestas que te parezcan útiles.

    Responder a las preguntas lleva su tiempo y trabajo, y lo hacemos gratis. No estaría mal que por lo menos nos lleváramos algún puntito si es que nuestra aportación te ha ayudado.

    Hola de nuevo Jesús López y disculpa, fue un error al marcar la respuesta como correcta. Quería marcar una tuya y otra de otro usuario pero cuando iba a marcar tu respuesta como la correcta  marqué una mía en la que salía "citada" una respuesta tuya a mi pregunta y por eso me confundí porque no miré el autor sino el mensaje... Se que lo hacen gratis y que lleva su tiempo te lo agradezco mucho pero fue un error al marcar la pregunta, eso es todo..

    Saludos y perdona, la próxima vez miraré bien antes de marcar una respueta como válida o dar puntitos..

    Tuesday, July 30, 2013 6:44 PM