none
No se puede tener acceso al archivo mdf RRS feed

  • Pregunta

  • Hola a todos,te tenía este post en Visual Basic .net y lo he movido para este foro, que creo que tiene mas relación. El asunto es que  acabo de instalarme el Visual basic 2010 Express con Slq Server 2008 Express, he instalado los services packs y todas las actualizaciones desde Windows Update y estoy usando Windows Vista SP2. La cuestion es que también he instalado el Microsoft Sql Server Management Studio y cuando hago una consulta desde el Management studio y estoy usando el visual studio al mismo tiempo al compilarlo me indica lo siguiente:

    Existe un problema al generar el manifiesto. El proceso no puede obtener acceso al archivo 'B:\Mi Proyecto\BDEscuela.mdf' porque está siendo utilizado en otro proceso

    La cadena de conexión que utilizo es la siguiente:

    ConAlumnos.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|BDEscuela.mdf;Integrated Security=True;User Instance=True"

    Este proyecto estaba creado con Visual Studio 2005 Express y Sql Server 2005 Express y lo he migrado con el Visual Studio 2010.

    Un saludo

     

    domingo, 3 de julio de 2011 12:48

Respuestas

Todas las respuestas

  • Es muy posible que la base de datos esté adjuntada y que no necesites adjuntarla cada vez. prueba a poner esta cadena de conexión

    "Data Source=.\SQLEXPRESS;Initial Catalog=BDEscuela;Integrated Security=True;User Instance=True"


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    domingo, 3 de julio de 2011 14:28
    Moderador
  • Hola Miguel, sigue dandome el mismo problema, ademas ahora no me encuentra la base de datos :(
    domingo, 3 de julio de 2011 16:04
  • hagamos lo siguiente.

    Busca el fichero MDF, con su ruta, conectate con management studio (si no lo tienes abajo te pongo otra alternativa) y ejecuta esto

    CREATE DATABASE BDEscuela
          ON (FILENAME = 'c:\xxx\yyyy\zzz\bdescuela.mdf')
          FOR ATTACH ;
    GO

    si no tienes management studio, abre una consola ms-dos como administrador (run-as Administrator) y ejecuta este comando

    SQLCMD -S .\SQLEXPRESS -Q "CREATE DATABASE BDEscuela ON (FILENAME = 'c:\xxx\yyyy\zzz\bdescuela.mdf')  FOR ATTACH;"

     

    Y nos cuentas que tal.

    Básicamente lo que estamos haciendo es que tu bbdd no se adjunte y desadjunte cada vez, sino que ya quede para siempre asociada a tu SQL Server.



     


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    domingo, 3 de julio de 2011 16:11
    Moderador
  • Si que tengo instalado el Managemente Studio, he ejecutado lo que pones y sigue dandome el mismo problema:

     

     

    Existe un problema al generar el manifiesto. El proceso no puede obtener acceso al archivo 'B:\***\BDEscuela.mdf' porque está siendo utilizado en otro proceso.

    domingo, 3 de julio de 2011 18:22
  • Ejecuta el comando Select * from sys.syaltfiles, y mira si ese fichero aparece en alguna entrada. Si es así, es que está adjuntada. Si no es así, hay que ver quien es quien está usando el archivo. Te diría que pararas y arrancaras el servicio sql y probaras de nuevo por si en algún intento quedó bloqueado.

    Si no se soluciona con este link http://technet.microsoft.com/en-us/sysinternals/bb896653 puedes descargar una aplicación para ver que programa está usando ese fichero.


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    domingo, 3 de julio de 2011 19:35
    Moderador
  • La consulta que me comentas me devuelve la ruta del fichero mdf. Obviamente es el SqlServer.exe quién está bloqueando el archivo (lo he mirado con el Unlocker). He probado a desconectarlo desde el management studio pero al ejecutarlo con el Visual Studio sigue dandome ese errror, tengo que cerrar el management studio para que no me de errror
    domingo, 3 de julio de 2011 20:16
  • Si la consulta devuelve ese fichero es que está adjuntado.  Te intento contar.

     

    Las bases de datos sql express tienen esta historia de attach file, que en mi opinión no hace más que confundir. El tema es que si el fichero está ya adjuntado, tendrá un nombre de base de datos. Si tu te puedes conectar al SQL Server basta con que lo hagas especificando la cadena de conexión tal y como yo te la ponía al principio. Lo único que puede pasar es que la BB DD no se llame BD Escuela sino otro nombre y sea ese el que tengas que especificar.

    Así pues. Decide como quieres tu bbdd, si quieres que eso te funcione puede ejecutar sp_detach_db 'comoselllametubbdd" de esta forma liberas el fichero y te funcionará en principio todo lo demas.

    Saludos


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    domingo, 3 de julio de 2011 21:02
    Moderador
  •  Estoy deacuerdo con lo que te aconseja Miguel, solo comentarte,

    Que SQL Server Express admite instancias de usuario, lo que significa que se iniciará un nuevo proceso para cada usuario que se conecte a una base de datos de SQL Server Express. La identidad del proceso será el usuario que abra la conexión.

    Para conectar de forma:

    Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Database.mdf;Integrated Security=True;User Instance=True


    a SQL Server Express necesitas que las instancias de usuario esten habilitadas.

    Revisa esto:

    EXEC sp_configure 'show advanced option', '1'
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure 'user instances enabled', 1
    GO
    RECONFIGURE WITH OVERRIDE
    GO


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    domingo, 3 de julio de 2011 22:50
  • He probado a ejecutar el prodecimiento almacenado que me comentas, y lo que hace es quitarme la BBDD del Management Studio, pero así no puedo hacer consultas en el
    domingo, 3 de julio de 2011 23:00
  • Si, correcto, pero ahora tu caden de conexion inicial en este tema, te ha de funcionar...

    Los ficheros continuan existiendo, que es lo que necesitas. 


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008


    domingo, 3 de julio de 2011 23:18
  • Hola Norman me refería al procedimiento almacenado que me comentaba Miguel, he probado a revisar lo que tu me comentas...

     

    EXEC sp_configure 'show advanced option', '1'
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure 'user instances enabled', 1
    GO
    RECONFIGURE WITH OVERRIDE
    GO

     

    pero sigue igual, al abrir el Visual Studio 2010 y el Management Studio al mismo tiempo, no me deja ejecutar el visual studio 2010, me sigue dando el mismo mensaje que indiqué en el primer post.

     

    domingo, 3 de julio de 2011 23:59
  •  Dinos cual es el estado de la bbdd, ahora?

    ¿Atachada (con visibilidad desde el SQL M. Studio) o desatachada (sin visibilidad desde el SQL M. Studio)?


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008

    lunes, 4 de julio de 2011 6:13
  • El problema es que no te puedes conectar con el comanto attachfile y a la vez tenerla en management studio, tienes que elegir una de las dos formas.

    Te sugiero que la dejes en mamagement studio y que cambies tu cadena de conexión a esta, si tu bbdd en management studio no se llama BDEscuela, cambia el nombre al que tenga.

    Data Source=.\SQLEXPRESS;Initial Catalog=BDEscuela;Integrated Security=True;User Instance=True"


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    lunes, 4 de julio de 2011 7:24
    Moderador
  • Ahora tengo la BBDD atachada, la veo desde el SQL M. Studio, acabo de pobrar con el conexion string que me comenta Miguel, pero sigue dandome el mismo problema
    lunes, 4 de julio de 2011 13:56
  • preuba solamente con

    "Data Sourcer= .\SQLEXPRESS;Initial Catalog=BDEscuela;

    Y dinos si el mensaje de error es el mismo.


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    lunes, 4 de julio de 2011 14:00
    Moderador
  • Si el error es exactamente el mismo
    lunes, 4 de julio de 2011 16:31
  • Dame de alta en msn, como webmaster arroba portalsql punto com y lo intentamos hacer on-line, así va a ser imposible. (mandame un mail con el tuyo que te añada yo también).  El error es muy sencillote.. pero en base a mensajes por aquí será una locura.
    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    lunes, 4 de julio de 2011 16:37
    Moderador
  • Hola Miguel, te agregué al messenger pero no apareces por él ... jeejej ... alguien más puede ayudarme ????
    miércoles, 6 de julio de 2011 20:43
  • dime el tuyo, o pone un mail a webmaster@portalsql.com, si que aparezco pero... no me salen la speteiciones, supongo que por no ser hotmail.
    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    miércoles, 6 de julio de 2011 20:45
    Moderador
  • Te acabo de mandar un mail a tu correo, ya te lo había enviado pero te lo he vuelto a enviar .... ;)

    jueves, 7 de julio de 2011 0:21