Foros del Web » Programando para Internet » ASP Clásico »

Insertar registros con access y consultar en asp simultaneamente

Estas en el tema de Insertar registros con access y consultar en asp simultaneamente en el foro de ASP Clásico en Foros del Web. Otra vez por aqui. Os cuento lo que necesito hacer, se trata de una base de datos access que esta en un servidor local y ...
  #1 (permalink)  
Antiguo 07/09/2004, 10:16
 
Fecha de Ingreso: noviembre-2002
Mensajes: 21
Antigüedad: 21 años, 7 meses
Puntos: 0
Pregunta Insertar registros con access y consultar en asp simultaneamente

Otra vez por aqui. Os cuento lo que necesito hacer, se trata de una base de datos access que esta en un servidor local y web, las inserciones se realizan desde pc´s conectados a la red local y que por via internet se pueda consultar la base de datos.

Mi pregunta es: se puede hacer, no habra ningun choque?. Os cuento el por que de esta pregunta, si yo tg abierta la base de datos en el server y quiero acceder por el explorer a su contenido me da error, ¿ocurrira lo mismo si accedo a la base de datos desde un pc terminal y via web a la vez?

Un saludo y me sorprenda la gran colaboracion que hay en este foro. Gracias

Última edición por roberm; 07/09/2004 a las 10:26
  #2 (permalink)  
Antiguo 07/09/2004, 11:46
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Tu dices que abren la base de datos e insertan registros directamente en la base de datos?
Si es así me parece que si tendrás mayor problema.
Si es a través de un manager, me parece que reduces mucho el riesgo aunque siempre podrá estar latente un error, pero en que aplicación no lo está?


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 07/09/2004, 12:08
 
Fecha de Ingreso: noviembre-2002
Mensajes: 21
Antigüedad: 21 años, 7 meses
Puntos: 0
Con la base de datos abierta y hago una consulta asp y me sale el siguiente fallo:

Tipo de error:
Microsoft JET Database Engine (0x80004005)
No se pudo usar ''; el archivo ya está en uso.
/paginar.asp, línea 26


El codigo de la conexion es:

Set Conn = Server.CreateObject("ADODB.Connection")
Set Command = Server.CreateObject("ADODB.Command")
Set RS =Server.CreateObject("ADODB.RecordSet")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\Sample1.mdb"
RS.Open sSQL,Conn,adopenstatic,adcmdtext


Por favor, a ver si me lo podeis solucionar. Me urge
  #4 (permalink)  
Antiguo 07/09/2004, 12:48
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, eso es normal por que al abrir access, aunque no la abre de modo exclusivo, si bloquea los accesos por el Data Provider.

Tendrías que abrirla desde el access de solo lectura: Archivo -> Abrir -> (De la lista desplegable del botón abrir) Abrir solo lectura

Ahora ya puedes Consultar la BD desde access y ejecutar tu página Web sin problemas.

Ahora, para que tus sistemas funcionen, tendrías que implementar alguna rutina de bloqueos o bien abrir conecciones como adModeShareDenyNone y en tu página generadora de informes como adModeRead. No se, cuestion de hacer pruebas.
  #5 (permalink)  
Antiguo 07/09/2004, 12:52
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
por cierto, esto
Cita:
... a ver si me lo podeis solucionar. Me urge
se vería mejor como
Cita:
... espero me puedan ayudar. Me urge
Chéca alguna de estas ligas sobre el error

Saludos

Última edición por Myakire; 07/09/2004 a las 12:54
  #6 (permalink)  
Antiguo 07/09/2004, 13:03
 
Fecha de Ingreso: noviembre-2002
Mensajes: 21
Antigüedad: 21 años, 7 meses
Puntos: 0
Pregunta

Gracias Myakire y llevas razon, eso de solucionar ha sonado raro, lo siento. Probare lo que me comentas, otra solucion que han dado por ahi es que use SQL Server y para insertar use el access vinculando las tablas y asp con SQL para las consultas.

Que os parece?

Un saludo
  #7 (permalink)  
Antiguo 07/09/2004, 13:08
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, usas tablas vinculadas es buena solución en ciertos casos, pero en el tuyo en particular, si tienes la posibilidad de migrarte a SQL Server (el cual gestiona los bloqueos o diferencia del access) ¿por que no migras toda la BD y te olvidas del access?

Digo, sería mas simple ¿o no?
  #8 (permalink)  
Antiguo 07/09/2004, 13:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 21
Antigüedad: 21 años, 7 meses
Puntos: 0
Es que la persona que me ha encargado el proyecto quiere que se metan los datos en access, es mucho mas rapido y comodo para las chicas que meten los datos.

He probado lo que tu me has comentado y abriendo en access solo lectura funciona, pero al reves no.

Como he sugerido la ultima vez se puede hacer?. Es decir, migrar la a SQL server pero la introducion de datos hacerlo mediante access y vinculando


Muchas gracias

Última edición por roberm; 07/09/2004 a las 13:20
  #9 (permalink)  
Antiguo 07/09/2004, 13:37
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, podríamos empezar a hacer pruebas, pero antes vamos a descartar opciones más sencillas:
Este artículo dice que es por que no le haz dado permisos al usuario IUSR_NomPc.

Checa eso primero, please
  #10 (permalink)  
Antiguo 07/09/2004, 13:51
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Comprobado.

Esa es la solución.

Solo da acceso al usuario IUSR_NomPc a la carpeta virtual y funciona. Ya lo comprobé.
  #11 (permalink)  
Antiguo 07/09/2004, 14:09
 
Fecha de Ingreso: noviembre-2002
Mensajes: 21
Antigüedad: 21 años, 7 meses
Puntos: 0
Perdona, me lo podias explicar mejor. Soy nuevo con asp y iss y ando un poco pez.

He creado un directorio virual y he metido ahi la base de datos y he puesto permiso anonimo que use la cuenta iusr_nombre del pc

He probado y nada.

Que puede fallar, la programacion?


Un saludo, gracias y perdona el incordio que te estoy ocasionando
  #12 (permalink)  
Antiguo 07/09/2004, 14:40
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
mmmmmmm, a ver,
Lo de la carpeta virtual esta ok, lo del acceso anónimo al usuario IUSR_NOMPC también es correcto (supongo que la BD tambien tiene permisos para ese mismo usuario), según indica la solución de microsoft:

Código:
RESOLUTION
If the page is meant to be accessed anonymously, give the IUSR_<machinename> account full control to the ASP page, and the folder and files where the database is located. Additionally, if the path to the database is being referenced using UNC (\\Server\Share), ensure that the Share Permissions allow the IUSR_<machinename> account full access. This step applies even if the share is on the local Web server. 

If the page has been secured such that the IUSR_<machinename> can't access the file or database, then ensure that the user's account that is being authenticated has full control to the appropriate folders and files. 

At a minimum, the account being used needs Create, Destroy, Read, Write to work with the .ldb file. Specific permission can be applied to the database to limit access.
Solo queda la conexion:

Si tienes esto, Falla:
oConn1.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("rebe_pad.mdb"))

Cambiala por esta:
oConn1.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("rebe_new.mdb")

Y listo, con eso yo ya puedo trabajar en access y consultar la BD desde una página.

Saludos
  #13 (permalink)  
Antiguo 07/09/2004, 14:58
 
Fecha de Ingreso: noviembre-2002
Mensajes: 21
Antigüedad: 21 años, 7 meses
Puntos: 0
Sigue fallando:

Tipo de error:
Microsoft JET Database Engine (0x80004005)
No se pudo usar ''; el archivo ya está en uso.
/paginar.asp, línea 26




A ver:

He creado el directorio virtual del modo siguiente: en Sitios web-> el sitio que tengo predeterminado -> nuevo etc......

Luego el codigo que tengo es este:

Const adCmdText = &H0001
Const adOpenStatic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Set Command = Server.CreateObject("ADODB.Command")
Set RS =Server.CreateObject("ADODB.RecordSet")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("\bd\Sample1.mdb")
RS.Open sSQL,Conn,adopenstatic,adcmdtext

Esta bien puesto el data source?

Joe, estoy hecho un lio

Un saludo

Última edición por roberm; 07/09/2004 a las 15:07
  #14 (permalink)  
Antiguo 08/09/2004, 08:00
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Haciendo pruebas y reproduciendo el error en otra carpeta te puedo decir que hagas lo siguiente y funciona 100% seguro (va de cero...):

1) Creas una carpeta virtual, por el IIS o por el Explorador-Uso Compartido de Web, da lo mismo.

2) Verificas que tenga acceso anónimo y le asignas permiso a la carpeta virtual desde el IIS al usuario IUSR_PC (es lo lógico y supongo que así lo hiciste).

3) Vas al explorador de windows, seleccionas la carpeta->propiedades->seguridad y agregas al usuario IUSR_PC (se podría suponer que al dar acceso desde el IIS se añadiría al usuario automaticamente a la carpeta, pero no es así)

4) Le asignas permisos de "Control Total" a la carpeta a este usuario (La primer casilla, Windows llena las demás), luego se podría ir jugando con los checkboxs realmente necesarios.

5) Listo, funciona por que funciona.
  #15 (permalink)  
Antiguo 28/05/2008, 09:22
 
Fecha de Ingreso: abril-2007
Mensajes: 2
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Insertar registros con access y consultar en asp simultaneamente

Hola a todos. Tengo el mismo problema que el compañero Roberm.. y he seguido vuestros pasos, pero tengo un problemilla:

La web me da un error de que no encuentra la ruta.. busca la ruta física de la máquina d:\www\webdepruebas\mdb\datos.mdb en lugar de la relativa: http:\\www.webdepruebas.com\mdb\datos.mdb
donde mdb es el directorio virtual y evidentemente no existe en d:\www\webdepruebas\mdb\
No sé si me explico.
Alguien me puede echar una mano? gracias.
  #16 (permalink)  
Antiguo 28/05/2008, 11:55
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Insertar registros con access y consultar en asp simultaneamente

¿y por qué no pones la ruta física (Server.MapPath)?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:35.