Aprendiendo Sql

14/12/2006 - 18:54 por Eduardo | Informe spam
Hola a todos
Estoy desarrollando una pequeña apliaccion que trabaja con base de datos
sql,
generé la tabla con vs.net 2005 y despues agregue un conjunto de datos para
crear
el dataset tipado y trabajo bien con la base.
Ahora el problema aparece porque quiero ejecutar la misma aplicacion desde
otra maquina con un acceso directo del
ejecutable y no se como hacer para que trabaje con la misma base de datos
la estructura de directorios que tengo es asi:

c:\ mi programa\
\data\ " base de datos .mdf "
\programa\" archivo ejecutable "

Por favor si alguien me puede orientar como hacerlo para que se pueda
trabajar desde dos maquinas con
la misma base de datos y si esa es la forma correcta de hacerlo
o tengo que crear otro archivo ejecutable que utilice la misma base de
datos.
Desde ya muchas gracias y espero que me entiendan.
Eduardo.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
14/12/2006 - 22:32 | Informe spam
"Eduardo" wrote in message
news:
Estoy desarrollando una pequeña apliaccion que trabaja con base de datos
sql,
generé la tabla con vs.net 2005 y despues agregue un conjunto de datos
para crear
el dataset tipado y trabajo bien con la base.
Ahora el problema aparece porque quiero ejecutar la misma aplicacion desde
otra maquina con un acceso directo del
ejecutable y no se como hacer para que trabaje con la misma base de datos
la estructura de directorios que tengo es asi:

c:\ mi programa\
\data\ " base de datos .mdf "
\programa\" archivo ejecutable "

Por favor si alguien me puede orientar como hacerlo para que se pueda
trabajar desde dos maquinas con
la misma base de datos y si esa es la forma correcta de hacerlo
o tengo que crear otro archivo ejecutable que utilice la misma base de
datos.



Aunque no lo dices expresamente, me imagino que lo que estás haciendo
es que desde una máquina lanzas un ejecutable que está en la otra (
\\maquina\directorio\miprograma.exe ), y te da un error de seguridad cuando
accedes a la base de datos.
El problema no tiene nada que ver con la base de datos en sí misma. Lo
que ocurre es que te estás encontrando con el sistema de seguridad de .Net,
que restringe los permisos de un programa dependiendo de la ubicación desde
la que se ejecute. De forma predeterminada, los ejecutables que se lanzan
desde el propio disco duro del mismo ordenador tienen permisos ilimitados,
pero los que se lanzan desde otra máquina tienen los permisos muy limitados
y, entre otras cosas, no pueden usar bases de datos (ni en la misma máquina
ni en otra). Estos permisos predeterminados se pueden cambiar desde el panel
de control, herramientas administrativas, configuración del .Net framework.
Otra alternativa es copiar el mismo ejecutable desde la otra máquina (no
"crear otro ejecutable" como dices en la pregunta) al disco local y
ejecutarlo desde ahi.

Otra cosa más: veo que "base de datos.mdf" lo tienes en el directorio
data de tu programa, en lugar de tenerlo en el directorio de bases de datos
de SQL Server. Eso me lleva a pensar que estás usando la modalidad "user
instance" de Sql Server Express. Cuando trabajas en este modo de
funcionamiento, la base de datos solo es accesible localmente, no se puede
usar desde red. Tendrás que cambiar la cadena de conexión de Sql Server para
que use una base de datos normal en lugar de una instancia de usuario.
Además, si la versión de Sql Server que estás usando es la Express, tendrás
que reconfigurarlo para que admita conexiones de red, ya que de forma
predeterminada se instala configurado para admitir únicamente conexiones
locales.
Respuesta Responder a este mensaje
#2 Eduardo
14/12/2006 - 22:59 | Informe spam
Alberto:
Te estoy muy agradecido por tu respuesta realmente es muy clara
ahora solo me queda llevar la base de datos al directorio del servidor
y trabajar.
Sinceramente muchisimas gracias!!!!!
Eduardo.



"Alberto Poblacion"
escribió en el mensaje news:
"Eduardo" wrote in message
news:
Estoy desarrollando una pequeña apliaccion que trabaja con base de datos
sql,
generé la tabla con vs.net 2005 y despues agregue un conjunto de datos
para crear
el dataset tipado y trabajo bien con la base.
Ahora el problema aparece porque quiero ejecutar la misma aplicacion
desde otra maquina con un acceso directo del
ejecutable y no se como hacer para que trabaje con la misma base de datos
la estructura de directorios que tengo es asi:

c:\ mi programa\
\data\ " base de datos .mdf "
\programa\" archivo ejecutable "

Por favor si alguien me puede orientar como hacerlo para que se pueda
trabajar desde dos maquinas con
la misma base de datos y si esa es la forma correcta de hacerlo
o tengo que crear otro archivo ejecutable que utilice la misma base de
datos.



Aunque no lo dices expresamente, me imagino que lo que estás haciendo
es que desde una máquina lanzas un ejecutable que está en la otra (
\\maquina\directorio\miprograma.exe ), y te da un error de seguridad
cuando accedes a la base de datos.
El problema no tiene nada que ver con la base de datos en sí misma. Lo
que ocurre es que te estás encontrando con el sistema de seguridad de
.Net, que restringe los permisos de un programa dependiendo de la
ubicación desde la que se ejecute. De forma predeterminada, los
ejecutables que se lanzan desde el propio disco duro del mismo ordenador
tienen permisos ilimitados, pero los que se lanzan desde otra máquina
tienen los permisos muy limitados y, entre otras cosas, no pueden usar
bases de datos (ni en la misma máquina ni en otra). Estos permisos
predeterminados se pueden cambiar desde el panel de control, herramientas
administrativas, configuración del .Net framework. Otra alternativa es
copiar el mismo ejecutable desde la otra máquina (no "crear otro
ejecutable" como dices en la pregunta) al disco local y ejecutarlo desde
ahi.

Otra cosa más: veo que "base de datos.mdf" lo tienes en el directorio
data de tu programa, en lugar de tenerlo en el directorio de bases de
datos de SQL Server. Eso me lleva a pensar que estás usando la modalidad
"user instance" de Sql Server Express. Cuando trabajas en este modo de
funcionamiento, la base de datos solo es accesible localmente, no se puede
usar desde red. Tendrás que cambiar la cadena de conexión de Sql Server
para que use una base de datos normal en lugar de una instancia de
usuario. Además, si la versión de Sql Server que estás usando es la
Express, tendrás que reconfigurarlo para que admita conexiones de red, ya
que de forma predeterminada se instala configurado para admitir únicamente
conexiones locales.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida