Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Crear base de datos Access desde ASP


Ejemplos para crear un archivo .mbd (base de datos Access) desde un script ASP.


Estas son unas pautas de trabajo y unas referencias que he encontrado útiles a la hora de solucionar un problema en ASP, consistente en crear una base de datos en Access (fichero .mdb) desde cero, es decir, crear el archivo .mdb vacío para, una vez creadas también las tablas, trabajar con la base de datos como si hubiese sido creada con Access.

Lógicamente, con Access es mucho más sencillo crear las bases de datos, pero este mecanismo tiene dos ventajas. Una simple: que no necesitas tener Access para crear las bases de datos, y otra más interesante: que puedes crear bases de datos en línea y dinámicamente, de modo que queden guardadas en tu servidor para realizar los trabajos que estimes oportuno.

Nota: Se puede crear una base de datos de Access a través de Visual Basic, ASP, u otros medios porque en realidad lo que se está utilizando es el motor Jet, que son unas DLL que tienen todos los sistemas Windows para manejar los archivos .mdb. Más información en la FAQ Qué es el motor de base de datos Microsoft Jet.

Métodos para crear una BD Access 2000

Existen dos métodos para crear una base de datos Access: ADO y DAO. Vamos a ver un pequeño ejemplo de cada uno.

Atención: Para los dos casos, los directorios tienen que tener permisos de escritura para que funcione correctamente.

Ejemplo en ADO, Requiere MDAC 2.0

Para el ejemplo se necesita tener instalado el Microsoft Data Access Component (MDAC 2.0), que se incluye con la instalación de Microsoft Access 2k, o, sino, bajar la ultima versión del (MDAC) desde http://www.microsoft.com/data (donde también se encuentra el Component Checker para saber que versión tienes instalada).

Según información de Microsoft la versión 1.5 del MDAC contiene algunos bugs, por lo que recomiendan actualizarse.

Dim basedatos
Set basedatos = CreateObject("ADOX.Catalog")
basedatos.Create "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=" & Server.MapPath("prueba.mdb")
Set basedatos = Nothing


En la cadena utilizada para crear la base de datos, el valor Engine Type indicado (5) sirve para que la base de datos tenga formato Access 2000. Podíamos haber puesto otros valores para otras versiones del motor, por ejemplo 3 para Access 95, o el valor 4 para Access 97.

Ejemplo en DAO, requiere DAO

Se necesita DAO 3.6 ó DAO 3.5. En caso de utilizar DAO 3.5, se ha de modificar "DAO.DBEngine.36" por "DAO.DBEngine.35"

Dim motor
Set motor = CreateObject("DAO.DBEngine.36")
motor.CreateDatabase Server.MapPath(NomBD&".mdb"), ";LANGID=0x0409;CP=1252;COUNTRY=0", 64
Set motor = Nothing


El tercer parámetro del método para crear la base de datos (64) es para indicar la versión de la base de datos, en este caso Access 2000. En el caso de desear otro formato se puede modificar por ejemplo a 32 en caso de Access 97 ó 16 para Access 95.

Conclusión

Las pruebas las hice en 2 PCs con Windows Professional 2000 (SP3) y Office 2000 (SP3) instalado y funcionaron perfectamente, lo mismo que en mi servidor (hosting contratado) y en el de Brinkster (cuenta gratuita) sin ningun drama. También se han probado con éxito, en la redacción de DesarrolloWeb.com, utilizando el sistema Windows 98 y el servidor Personal Web Server.

Por último, aquí se puede ver un ejemplo que hice para generar las db desde ADO ó DAO (3.6). El código esta bastante comentado con respecto al funcionamiento y los requerimientos del servidor.

<%@LANGUAGE="VBSCRIPT"%>
<%
Generar = Request.Form("action")
if Generar <> "" then

On Error Resume Next

Metodo = Request.Form("metodo")
Formato = Request.Form ("formato")
NomBD = Request.Form ("nomBD")

' ************* Comprobamos segun que método ************

if Metodo = "ADO" then

    if Formato = "1" then
       FormatoBD = 5
       FormatoN = "Ms Access 2000"
    elseif Formato = "2" then
       FormatoBD = 4
       FormatoN = "Ms Access 97"
    elseif Formato = "3" then
       FormatoBD = 3
       FormatoN = "Ms Access 95"
    end if
' **********************
'    Para los dos casos los directorios tienen que
'    tener permisos de escritura para que funcione
'    correctamente.
' **********************
'    Ejemplo en ADO, requiere MDAC 2.0
'
'    para saber que version esta instalada en el sistema
'    se puede usar el Component Checker Tool de
'    Microsoft
'    http://www.microsoft.com/data/download.htm#CCinfo
'    ó bajar la ultima version en
'     http://www.microsoft.com/data/download.htm
'
'    Jet10 = 1
'    Jet11 = 2
'    Jet20 = 3 <----------- para Access 95
'    Jet3x = 4 <------------ para Access 97
'    Jet4x = 5 <------------ para Access 2000
' **********************
' ***** Comienzo ADO ************
Dim Catalog
Set Catalog = CreateObject("ADOX.Catalog")
Catalog.Create "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type="&FormatoBD&";Data Source="&Server.MapPath(NomBD&".mdb")
Set Catalog = Nothing
' ************ Fin ADO *****************

else
    if Formato = "1" then
       FormatoBD = 64
       FormatoN = "Ms Access 2000"
    elseif Formato = "2" then
       FormatoBD = 32
       Formato = "Ms Access 97"
    elseif Formato = "3" then
       FormatoBD = 16
       FormatoN = "Ms Access 95"
    end if

****************
'    Ejemplo en DAO, requiere DAO 3.6 ó DAO 3.5 para
'    DAO 3.5 modificar "DAO.DBEngine.36" por
'    "DAO.DBEngine.35"
'
'    dbVersion10 = 1
'    dbVersion11 = 8
'    dbVersion20 = 16 <------------ para Access 95
'    dbVersion30 = 32 <------------ para Access 97
'    dbVersion40 = 64 <------------ para Access 2000
****************
' ********** Comienzo DAO **********
Dim Engine
Set Engine = CreateObject("DAO.DBEngine.36")
Engine.CreateDatabase Server.MapPath(NomBD&".mdb"), ";LANGID=0x0409;CP=1252;COUNTRY=0", FormatoBD
Set Engine = Nothing
' ********** Fin DAO ***********
end if
end if
%>

<html>
<head>
<title>Crear *.mdb</title>
<style type="text/css">
<!--
body {
    font-family: Arial, Helvetica, sans-serif; font-size: x-small
}
-->
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000">

<%
if Generar <> "" then
    if Err then
    Response.Write "Hubo un error.<br><br>"
    Response.Write "<u>Error:</u> " & Err.Description & "<br>"
    Response.Write "<u>Error N°:</u> " & Err.Number &"."
    else
    Response.Write "Base de datos <u>"& NomBD &"</u> fué creada exitosamente!!<br>"
    Response.Write "Formato: "&FormatoN & "<br>"
    Response.Write "Metodo usado: "&Metodo
    end if
else
%>

<!-- Formulario de creacion //-->
<form name="creador" action="crear_db.asp" method="POST">
Nombre de la BD:
<input type="text" name="nomBD"><br>
Formato:
<select name="formato">
    <option value="1" selected>Access 2000</option>
    <option value="2">Access 97</option>
    <option value="3">Access 95</option>
</select><br>

Método:<br>
<input type="radio" name="metodo" value="ADO" checked><small>ADO (requiere MDAC 2.0)</small><br>
<input type="radio" name="metodo" value="DAO"><small>DAO (requiere DAO 3.6)</small><br><br>

<input type="submit" value="Crear">
<input type="hidden" name="action" value="si">
</form>
<!-- Fin formulario //-->

<%
end if
%>

</body>
</html>


El código de este ejemplo se puede descargar en un archivo comprimido.

Una referencia útil que se consultó para documentar este artículo es Crear una base de datos MDB con Visual Basic (En inglés).

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 2 categorias relacionadas
+ 3 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Luis Marcelo Sosa*
URL: http://www.i-arg.com.ar

Atención: Copyright. Este artículo no se puede reproducir sin la autorización expresa del autor.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Access
+ Entrar en Scripts en ASP


 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 3 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de ASP
Categorías
+Access
+Scripts en ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia