Pasos previos II: Conexión a BD

Pasos previos a la programación en ASP. Qué es una base de datos y cómo conectarse a partir de los ODBC.
El siguiente paso, una vez instalado el servidor que nos permite trabajar en local, es crear los vínculos con las bases de datos que explotaremos en nuestros scripts. En efecto, la utilización de páginas dinámicas está muy frecuentemente asociada con el empleo de bases de datos.

Una base de datos es sencillamente un conjunto de tablas en las que almacenamos distintos registros (artículos de una tienda virtual, proveedores o clientes de una empresa, películas en cartelera en el cine...). Estos registros son catalogados en función de distintos parámetros que los caracterizan y que presentan una utilidad a la hora de clasificarlos. Así, por ejemplo, los artículos de una tienda virtual podrían catalogarse a partir de distintos campos como puede ser un número de referencia, nombre del artículo, descripción, precio, proveedor...

Las bases de datos son construidas sirviéndose de aplicaciones tales como el Microsoft Access o el MySQL las cuales resultan bastante sencillas de utilizar con unos conceptos mínimos.

Nuestro objeto aquí no es explicar la forma de explotarlas sino cómo establecer una conexión entre la base de datos, almacenada en cualquier lugar del disco duro y nuestra página web alojada también en cualquier parte y reconocida por nuestro servidor personal a partir del directorio virtual.

Para crear este vínculo, nos servimos de los conectores ODBC (Open DataBase Connectivity) los cuales establecen el enlace con la base de datos.
Acceso por panel de configuración Agregando un DSN
El primer paso para crear esta conexión es ir al panel de configuración y abrir el icono ODBC 32bits. Dentro de él, deberemos crear un DSN (Data Source Name) de tipo sistema o usuario. Para ello nos colocamos en la solapa correspondiente (DSN sistema o DSN usuario) y seleccionamos "Añadir". A continuación se nos pedirá seleccionar los controladores de la aplicación que hemos utilizado para crear la base de datos, el nombre que le queremos asignar (aquel que empleemos en nuestros scripts) y el camino para encontrarla en el disco duro.

Configurando la conexión
Esta DSN permite en realidad definir la base de datos que será interrogada sin necesidad de pasar por la aplicación que hayamos utilizado para construirla, es decir, con simples llamadas y órdenes desde nuestros archivos ASP podremos obtener los datos que buscamos sin necesidad de ejecutar el Access o el MySQL los cuales, evidentemente, no tendrán por qué encontrarse en el servidor donde trabajemos.

Autor

Rubén Alvarez

Rubén es doctor en química y programador aficionado con experiencia en PHP.

Compartir

Comentarios

Rubén

05/6/2001
Cuando trabajamos con un servidor, es posible que solicitarles la creación de DSN o que nos den acceso a una página de administración desde la cual podremos hacerlo nosotros mismos.

Otra posibilidad es crear una conexión sin DSN. Esto puede ser llevado a cabo especificando en el programa la ubicación de la base de datos y los drivers que han de ser empleados. La sintaxis sería de este tipo:

<%
DataConn.Open "DBQ=C:\path_de_acceso_a_la_base\base.mdb;Driver={Microsoft Access Driver (*.mdb)}"
%>

Este ejemplo ha sido realizado para una conexión a una base Access (caso más corriente).

Miguel Angel Alvarez

10/3/2002
Cualquier base de datos que desees conectar a través de ASP, debes utilizar el ODBC. Creas el DSN igual que explicamos en la página, pero utilizas el driver de la base de datos que estás utilizando. Si no tienes el driver ODBC deberías descargarlo en la web de la base de datos, si es que existe.

En el caso de PHP, debes mirar si tu base de datos está soportada en la documentación del lenguaje, que puedes encontrar en php.net. Cada base de datos soportada tiene un juego de funciones específicas que debes aprender en dicha documentación.

Salvador Reyes

08/4/2002
me he bajado el omni httpd por tener windows Me para poder realizar los ejemplos de ASP, sin embargo cuando cargo las paginas, todo lo ke hay en ASP, no me aparece en las paginas. Tengo el programa residente en memoria. Supongo que no sabré bien como configurarlo o los pasos a seguir. Si alguien quisiera explicarme como configurarlo via mail, le estaria muy agradecido. un saludo

Javier García

27/5/2002
Hola, tan sólo quería comentar que el método que expresa Rubén en su mensaje, el que habla de conectar con una base de datos SIN utilizar odbc a mi no me funciona, no sé si es que estoy haciendo algo mal (muy posible) o si es que este método no sirve. Si os sirve de algo, el navegador IE6.0 me da este error al intentar cargar la página asp conteniendo el método
DataConn.Open "DBQ=C:\path_de_acceso_a_la_base etc...:

Error de compilación de Microsoft VBScript (0x800A0400)
Se esperaba una instrucción
/default.asp, line 15
"DBQ=D:\pruebas\bbdd\pruebas.mdb;Driver={Microsoft Access Driver (*.mdb)}"

De todas maneras, he conseguido conectar con la base de datos mediante odbc sin mayor problema que mi inexperiencia en temas asp, aunque todo se consigue con un poco de paciencia. Nada más, gracias por ayudar a los que empiezan a base de buenos tutoriales como este. Hasta pronto.

Una referencia de redacción:
En el manual sobre como crear un buscador simple en ASP, tenemos implementada la opción para conectar una base de datos sin utilizar DSN.

Angel Royo

15/6/2002
Como me puedo conectar a un Data Base Server externo desde mi Host con ASP. EL DB externo es MS sql server 7 y mi host tiene ASP. Esto es para llenar una web con los datos que tiene una empresa en su servidor.

RESPUESTA

Para conectar con un host externo deberías crear el DSN en tu ordenador igual que creas un DSN cuando deseas conectar con una base de datos que tienes en local (a través del panel de control en "fuentes de datos ODBC". La única diferencia es que en el nombre del servidor indicas el nombre o la IP del servidor remoto al que deseas conectarte en lugar de tu ordenador local.

Si por algún motivo no puedes crear un DSN, puedes utilizar la cadena de conexión sin DSN, que para SQL Server sería la siguiente:

Conn.Open "driver={SQL Server}; server=NOMBREMAQUINA; uid=TuLogin; pwd=TuContraseña; database=TuBaseDeDatos"

Lazaro Romel

27/8/2002
Hola que tal nada mas como anexo a lo que es conexion con base de datos sin DSN agrego este pequeño script para su uso:

set conn=createobjec("adodb.connection") conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("base.mdb"))

esto es si se encuentra la BD en la misma carpeta. Si no nada mas modifiquen el path de la BD ejemplo en otra carpeta:

Server.MapPath("Datos/base.mdb"))

Isaac

07/11/2002
Como puedo hacer para conectar a una base de datos Access externa desde mi Host con ASP. Se trata ademas de hacer consultas y mostrarlas en mi host.

RESPUESTA

Si la base de datos es Access no la puedes conectar de manera externa. Por tanto, debe estar en el mismo servidor que el servidor web.

Esto es debido a que Access no es una base de datos de servidor, es decir, no acepta conexiones de red para acceder a su contenido. Si quieres hacer algo como eso debes pasarte a otra base de datos, como SQL Server o MySQL.

yoyo

11/6/2003
He estado tratando de crear el vinculo de ODBC, pero en mi panel control no se encuentra el icono de fuente base de datos. ¿Qué debo hacer?

RESPUESTA

Si estás en Windows XP este icono aparece dentro de la carpeta "Herramientas Administrativas" que sí encontrarás dentro del panel de control. Si no la ves deberías pasar a "Vista clásica" del panel de control.

Kike

27/2/2004
Hola a todos, hasta ahora he buscado información sobre la conexicion con dreamweaver a una base de datos de access, ya le he solicitado la creación de un dsn al hosting, pero cuando trato de conectarme aparece un error q dice: no tiene permiso de acceso o esta abierta en modo exclusivo. No se si tambien debo crear un dsn en mi equipo, o es algo referente al servidor de prueba, o a la seleccion de ASP Vscrip como herramienta Gracias a todos este medio es realmente una maravilla

Mariano

13/2/2005
Hola a todos, y gracias por dar soluciones a cuestiones que a veces en los manuales tan gentilmente otorgados por desarrolloweb.com no se llegan a comprender tan bien. Un tema planteado en los comentarios fue la de crear una conexion sin DNS. Y fueron tambien muchas las soluciones propuestas, bueno, aca les dejo el scrip completo para que les salga bien; saque un poco de todas las soluciones planteadas y aca les dejo el resultado:

<%
'Instanciamos y abrimos nuestro objeto conexion
Set Conexion = Server.CreateObject("ADODB.Connection")
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("mibase.mdb")

'Ahora creamos la sentencia SQL
sSQL="Insert Into Clientes (nombre,telefono,email) values ('" & nombre & "','" & telefono & "','" & email & "')"

'Ejecutamos la orden
set RS = Conexion.Execute(sSQL)
%>
<%
'Cerramos el sistema de conexion
Conexion.Close
%>


Noten que el mayor problema que podemos llegar a tener es que no coincidan los aprametros "conn" o conexion, por lo que aconsejo que revicen que cada parametro empiece y termine de la misma manera. que fue uno de mis problemas. Espero que le haya servido de algo, y lo puedan usar

MIGUEL

24/2/2005
Los temas que abarca este articulo son: Recuperación, Integración, Concurrencia y Seguridad.La recuperación y la concurrencia están muy interrelacionados ya que ambos aspectos forman parte del tema más amplio de la administración de transacciones. Estas están relacionadas con la cuestión general de la protección de los datos es decir la protección contra la perdida o daño de la información que están en la base de datos.

La Integración se refiere a la exactitud o corrección de los datos en la base de datos.

La seguridad se refiere a la protección de los datos contra su revelación, su alteración o su destrucción no autorizadas.

monra

18/5/2005
He visto en varios sitios que no se puede conectar en Red con una base de datos Access y sí se puede conectar con una base de datos externa aunque sea Access, o por lo menos a mi me funciona. Esta sería la forma:

Conn.Open "DBQ=\\MISERVIDOR\Mibasededatos.mdb;Driver={Microsoft Access Driver (*.mdb)}"

Cesar

17/2/2009
Gracias por la ayuda sigan asi, me salvaron de una tarde de dolor de cabexsa mis diez para ti

jannidey

13/7/2009
Urgente Conexion ODBC A visual Fox Pro 9
Buenas tardes, necesito de mucha ayuda. El inconveniente es el siguiente, tengo 5 computadoras la cual una sera utilizada como servidor, que requisitos se exige para que este sea utilizado como servidor, y como realizo la conexión ODBC a visual fox pro, necesito la codificacion que se vaya a realizar.
Gracias.
espero lo mas pronto posible una respuesta la cual me pueda ayudar.

velyne

02/9/2009
Conexion con ODBC
TEngo Win Xp y me aparecen 2 DSN, de sistema y de usuario..cual se configura?
Donde se debe especificar el nombre de la base, en "nombre de Origen de datos" o en "descripcion" ? no he podido conectar bien, me aparece el error
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado

Jorge

05/9/2009
Conexion mysql y win xp
Saludos Atodos
Tengo problemas de conexion con el servidor de base de datos uso mysql y java como interface en unas maquinas con windows xp no tengo problemas pero en otras no permiten la conexion al servidor estado leyendo un poco del tema pero no encuentro solucion.

Gracias.

Freddy

20/10/2009
Conexion MySQL - JAVA
Quiero hacer la conexion a La Base de Datos MySQL por medio de mi aplicaion en JAVA y estoy trabajando en un ordenador fijo!!!

marcelo

01/12/2009
no puedo entrar a google.com
hola, como debo proceder, para entrar a www.google.com, y a www.softonic.com.-
gracias......marcelo...............

MARIBEL

26/12/2009
pregunta
mil disculpas solo quiero saber que se le pone en donde te pide nombre de la base de datos de origen.

PROGRAMADOR

16/6/2011
CONEXION A BD
hola a todos tengo una duda y quisiera saber como hacer una conexion de sql 2005 a asp pero dentro dreamweaber8 lo que pasa que lo he estado intentando y ni si quiera me manda un error pero no existe conexio espero que me puedan ayudar y pues gracias

ROJAS

25/7/2011
conectarme desde mi hosting a mi base de datos sqlserver en aspx
Hola como me conecto desde mi hosting pero en el archivo web.config

desde ya gracias