|
|
Estás en Criptonomicón > Acceso a bases de datos > Acceso a la BD Acceso a la BD Cómo especificar el origen de datos En este ejemplo se explicará la conexión a través de ODBC por ser uno de los más sencillos y generales. Las aplicaciones ODBC hablan con un origen de datos, que contiene los detalles necesarios para comunicarse con la BD, como el driver o la localización física. Estos orígenes de datos se almacenan en la máquina con un nombre definido por el usuario, el DSN. Los DSN de usuario sólo son accesibles por el mismo usuario que creó la BD, mientras que los DSN de sistema son accesibles por cualquier usuario de la máquina. Acceso a la BD Para crear un DSN, en el “Panel de control”, haga doble clic sobre el icono “ODBC de 32 bits” (o simplemente “ODBC” u “Orígenes de datos (ODBC)” en algunas instalaciones). En el cuadro de diálogo “Administrador de orígenes de datos ODBC” que se abre, debe seleccionar la pestaña “DSN de sistema”, para que, como se ha explicado, la BD sea universalmente accesible. Pulse el botón “Agregar” y seleccione el controlador adecuado para la BD que esté usando. En este ejemplo se usará Access, por lo que se selecciona “Microsoft Access Driver (*.mdb)”. A continuación, pulse “Finalizar” y se mostrará el cuadro de diálogo “Configuración de ODBC Microsoft Access”. En el recuadro “Nombre del origen de datos”, escriba el nombre con el que quiere identificar la BD en el servidor, que en este ejemplo será “libros”. Puede rellenar si quiere el campo “Descripción” y, eso sí, debe especificar la localización de la BD. Para ello, pulse el botón “Seleccionar” e indique dónde se encuentra localizada físicamente en el servidor. Pulse “Aceptar” sucesivamente, hasta cerrar todos los cuadros de diálogo, y ya tiene su máquina configurada para aceptar consultas SQL a su base de datos. Observará que en el Registro de Windows se ha creado una entrada para su nuevo DSN en la siguiente localización: HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI Cómo conectarse al almacén de datos Modelo de datos ADO ADO (ActiveX Data Objects) es una tecnología orientada a objetos para componentes ActiveX basada en una API en C++ llamada OLE DB. Para los programadores, presenta la inestimable ventaja de poder prescindir de los detalles de programación de bajo nivel de OLE DB a la hora de acceder a datos almacenados en BD relacionales o no relacionales. En su lugar, los objetos ADO, por ser componentes ActiveX, pueden invocarse desde cualquiera de los lenguajes más populares en Internet que trabajen con objetos para acceder a toda la potencia de OLE DB, pero sin recurrir a la programación de bajo nivel. Los objetos ADO son independientes del lenguaje que se utilice al accederlos (JavaScript, VBScript, etc.) y permiten conectar su página web a cualquier BD compatible con ODBC a través de un interfaz basado en objetos. Las páginas ASP creadas en este curso representan un claro ejemplo de cómo utilizando un lenguaje de alto nivel como Visual Basic pueden introducirse llamadas a objetos ADO para trabajar adecuadamente con las BD. ADO expone al programador tres objetos principales para acceder a los datos: el objeto Connection, el objeto Command y el objeto RecordSet. Este último, el objeto RecordSet, es el más importante y potente, aunque, por simplicidad, en este curso introductorio se ha utilizado en la mayoría de los casos el objeto Connection. El proceso de petición de datos entre el cliente y el servidor de datos funciona de la siguiente manera:
Cómo conectarse al almacén de datos Una vez ha creado el DSN, debe indicar en la página ASP cómo se puede acceder a la BD utilizando el objeto Connection, al que se le pasan los parámetros adecuados, normalmente contenidos ya en el DSN. Cuando crea una página activa, la ejecución del guión tiene lugar en el servidor. Para diferenciar lo que es código en el lado del servidor de lo que es código en el lado del cliente, se utilizan los delimitadores <% y %>. De esta forma, para crear la conexión a la BD, puede escribir un código en VBScript como el siguiente: <% Si está familiarizado con la programación en Visual Basic, este fragmento de código no le planteará ninguna dificultad. En la primera línea se crea un objeto ADO para conectarse a la BD. En la segunda línea se abre la BD, utilizando la cadena de conexión que fue dada de alta al configurar el DSN. Si el acceso a la BD está protegido por contraseña, también se especificarían el USER ID y el PASSWORD. Podrían utilizarse otros métodos de conexión distintos de ODBC con DSN. Por ejemplo, se podría utilizar una conexión sin DSN, que obviaría el paso anterior de definición de un DSN en el servidor. Para ello, se utilizaría una cadena como sigue: oCon.Open "DBQ=F:\asp-bd\libros.mdb; "_ No obstante, el método más recomendable en plataformas NT es OLE DB, la más reciente tecnología orientada a objetos creada por Microsoft para un acceso rápido, estable y potente a BD. En contrapartida, presenta el inconveniente de que sólo soporta algunas de las BD más populares (Access, SQL Server, Oracle, etc.) y sólo funciona en plataformas NT. Para conectarse con OLE-DB basta con cambiar la cadena de conexión, quedando la nueva línea como: oCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; "_ Cómo recuperar datos Una vez establecida la conexión por medio del objeto Connection, mediante alguna de las cadenas de conexión explicadas, se utilizan los objetos Command y Recordset, para enviar consultas y recuperar datos, respectivamente. Se crea primero un objeto Command y se establece su propiedad CommandText a la sentencia SQL que se quiere ejecutar. A continuación, se le indica al objeto Command dónde encontrar los datos, estableciendo su propiedad ActiveConnection al objeto Connection usado. Se crea después un objeto Recordset donde almacenar los resultados de la búsqueda y se manda ejecutar la consulta con el método Execute del objeto Command. <% Cómo leer los datos de los registros Un objeto Recordset está compuesto a su vez de objetos Field, cada uno de los cuales contiene el valor del campo de la tabla recuperado en la consulta. Volviendo al ejemplo anterior, se puede obtener el valor del campo “Autor” de cualquiera de las siguientes formas: oRec.Fields("autor").Value Cuando se ha terminado con la BD, se cierran todos los objetos abiertos, utilizando su método Close, y se establecen todos a Nothing para liberar la memoria reservada. oRec.Close . Información adicional Copyright © 1997-2002 Gonzalo Álvarez Marañón, CSIC. Todos los derechos reservados. Criptonomicón es un servicio ofrecido libremente desde el Instituto de Física Aplicada del CSIC. Para información sobre privacidad, por favor consulte la declaración de política sobre privacidad. Para sugerencias, comentarios o quejas, acuda al libro de visitas. Para contribuir al Criptonomicón, lea la página de contribuciones. |