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

Trabajando con base de datos access

Estas en el tema de Trabajando con base de datos access en el foro de ASP Clásico en Foros del Web. Estoy haciendo una web que contiene una base de datos access. Desde la web se deben registrar usuarios nuevos y mas cosas. Ya he conseguido ...
  #1 (permalink)  
Antiguo 27/12/2005, 09:36
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
Antigüedad: 19 años, 4 meses
Puntos: 0
Trabajando con base de datos access

Estoy haciendo una web que contiene una base de datos access. Desde la web se deben registrar usuarios nuevos y mas cosas. Ya he conseguido que funcione en un ordenador y he tenido que poner lo siguiente para realizar la conexion a la bbdd:

Set objConex = Server.CreateObject("ADODB.Connection")
objConex.Open "DSN=midsn"

Para ello he tenido que hacer el dsn "midsn" en el panel de control->Herramientas administrativas, .... Bien, esto me funciona perfectamente. La duda que tengo es lo que tengo que poner en el objConex.Open para que funcione en un servidor web, ya que supongo que mi nombre DSN no lo van a tener los visitantes del sitio y no creo que la solucion sea que se lo hagan.

Y aparte, si alguien conoce un hosting gratuito que acepte asp para poder subirla me vendria bien.

Espero haberme explicado bien, gracias.
  #2 (permalink)  
Antiguo 27/12/2005, 09:50
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
ya que supongo que mi nombre DSN no lo van a tener los visitantes del sitio y no creo que la solucion sea que se lo hagan.

Haber, si tu estás haciendo el sitio tus visitantes no deben de saber nada sobre la conexión, ahora bien, mejor utiliza la cadena de conexion, pues algunos de los servidores gratuitos no tedan opcion de que lo hagas via dsn asi que mejor date una vualta a la página http://www.connectionstrings.com/.

Suerte.
  #3 (permalink)  
Antiguo 27/12/2005, 10:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Cita:
ya que supongo que mi nombre DSN no lo van a tener los visitantes del sitio y no creo que la solucion sea que se lo hagan
Hola, primero comentarte un concepto:
Como ASP vive en el servidor, el DSN es algo que le compete al servidor, no a los usuarios/visitantes.
Cuando vos desarrollás en TU equipo, éste hace al mismo tiempo de servidor (el IIS) y de cliente (el navegador web que uses). Cuando creaste el DSN en TU equipo, fue para que la instancia servidora de éste pueda encontrar la base de datos. A tu navegador (la instancia cliente), no le interesa para nada el DSN.

Entonces, si es que lo pude explicar bien, lo que tendrías que hacer es crear el DSN en el servidor web que finalmente albergue a tus páginas ASP. Los clientes (tus visitantes) no necesitarán tener ningún DSN para disfrutar de tu expectacular sitio :)

Explicado lo anterior, te comento que hay (al menos) 2 maneras de conectarte a una BD:
1- Usando un DSN (como lo hiciste)
2- Sin usar DSN, que se llama algo así como DSNLess.

Acá te explican cómo conectarte a una serie de bases de datos:
http://www.aspfaq.com/show.asp?id=2126
Fijate en la parte de Microsoft Access:

Código:
<% 
    cst = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
        "Data Source=" & Server.MapPath("/ruta_hacia_la_bd_desde_la_raiz_del_sitio_web.mdb>") 
 
    set objConex = Server.CreateObject("ADODB.Connection") 
    objConex.open cst 
%>
Con respecto a servidores gratuitos, conozco www.brinkster.com y www.1asphost.com (en este último es más fácil registrarte)

Saludos y cualquier otra duda, por acá andamos.
__________________
...___...
  #4 (permalink)  
Antiguo 27/12/2005, 10:08
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
Antigüedad: 19 años, 4 meses
Puntos: 0
Cita:
Iniciado por Al Zuwaga

<%
cst = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("/ruta_hacia_la_bd_desde_la_raiz_del_sitio_web.mdb>" )

set objConex = Server.CreateObject("ADODB.Connection")
objConex.open cst
%>
Hola, donde pone ("/ruta_hacia_la_bd_desde_la_raiz_del_sitio_web.mdb>" )
si el index.htm, que a esto se refiere con la raiz del sitio supongo, y la base de datos estan en el mismo directorio seria de la siguiente manera, no?:
("nombre_de_la_bd.mdb>")

Otra cosa en "objConex.open cst" que es lo de "cst"?

Y por ultimo, como se haria la desconexion?

Gracias
  #5 (permalink)  
Antiguo 27/12/2005, 10:25
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 21 años, 5 meses
Puntos: 2
La raiz del sitio no es index.htm, sino la carpeta desde la que parte el sitio. Por ejemplo, en tu ordenador, la raiz es c:\, y en tu ftp verás que hay una carpeta "sobre todas".

y "cst" es lo que se ha definido en la linea anterior:

cst = "provider ..."
  #6 (permalink)  
Antiguo 27/12/2005, 10:30
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Empesemos por el final.
Para "desconectarte" de una base de datos, seguís los pasos inversos.
Fijate que primero instanciás un objeto (set objConex=...) y luego lo abrís (objConex.open). Entonces para cerrarlo, lo cerrás y luego lo "desinstanciás":

objConex.Close
set objConex = Nothing

cst: Es sólo el nombre de una variable. Se podría haber llamado JuanCarlos que daba lo mismo (siempre y cuando uses JuanCarlos en todos lados en lugar de cst)


ruta_hacia_la_bd_desde_la_raiz_del_sitio_web:

eso significa que si tu sitio es www.pepe.com y la base de datos está en una subcarpeta del sitio, digamos www.pepe.com/subcarpeta/basededatos.mdb , esa línea te quedaría así:

Código:
"Data Source=" & Server.MapPath("/subcarpeta/basededatos.mdb")
Finalmente, te recomiendo la lectura de éstos artículos ya que noto que estás un poco verde en el tema. Son un poco viejos, pero para aprender de cero sirven.
__________________
...___...
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 16:02.