Criar banco de dados Access com ASP

Estas são umas pautas de trabalho e umas referências que achei úteis na hora de solucionar um problema em ASP, consistente em criar um banco de dados em Access (arquivo.mdb) desde zero, ou seja, criar o arquivo .mdb vazio para, uma vez criadas também as tabelas, trabalhar com o banco de dados como se tivesse sido criada com Access.

Logicamente, com Access é muito mais simples criar os bancos de dados, porém este mecanismo tem duas vantagens. Uma simples: que você não necessita ter Access para criar os bancos de dados, e outra mais interessante: que você pode criar os bancos de dados em linha e dinamicamente, de modo que fiquem salvos no seu servidor para realizar os trabalhos que estime oportuno.

Métodos para criar um BD Access 2000

Existem dois métodos para criar um banco de dados Access: ADO e DAO. Vamos ver um pequeno exemplo de cada um.

Atenção: Para os dois casos, os diretórios têm que ter permissões de escritura para que funcione corretamente.

Exemplo em ADO, Requer MDAC 2.0

Para o exemplo necessita-se ter instalado o Microsoft Data Access Component (MDAC 2.0), que está incluído com a instalação de Microsoft Access 2k, ou, senão, baixar a última versão do (MDAC) em http://www.microsoft.com/data (onde também se encontra o Component Checker para saber que versão você tem instalada).

Segundo informação de Microsoft a versão 1.5 do MDAC contem alguns bugs, portanto recomendam atualiza-lo.

Dim bancodados
Set bancodados = CreateObject(“ADOX.Catalog”)
bancodados.Create “Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=” & Server.MapPath(“prova.mdb”)
Set bancodados = Nothing

Na cadeia utilizada para criar o banco de dados, o valor Engine Type indicado (5) serve para que o banco de dados tenha formato Access 2000. Podíamos ter colocado outros valores para outras versões do motor, por exemplo 3 para Access 95, ou o valor 4 para Access 97.

Exemplo em DAO, requer DAO

Necessita-se DAO 3.6 ou DAO 3.5. No caso de utilizar DAO 3.5, há que 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

O terceiro parâmetro do método para criar o banco de dados (64) é para indicar a versão do banco de dados, neste caso Access 2000. No caso de desejar outro formato pode-se modificar por exemplo, a 32 no caso de Access 97 ou16 para Access 95.

Conclusão

As provas foram feitas em 2 PCs com Windows Professional 2000 (SP3) e Office 2000 (SP3) instalado e funcionaram perfeitamente, o mesmo que no meu servidor (hosting contratado) e no de Brinkster (conta gratuita) sem nenhum drama. Também foi provado com êxito no estúdio de CriarWeb.com, utilizando o sistema Windows 98 e o servidor Personal Web Server.

Por último, aqui pode-se ver um exemplo que fiz para gerar as db desde ADO ou DAO (3.6). O código está bastante comentado à respeito do funcionamento e os requerimentos do servidor.

<%@LANGUAGE=”VBSCRIPT”%>
<%
Gerar = Request.Form(“action”)
if Gerar <> “” then

On Error Resume Next

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

‘ ************* Comprovamos segundo 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 os dois casos os diretorios tem que
‘    ter permissoes de escritura para que funcione
‘    corretamente.
‘ **********************
‘    Exemplo em ADO, requer MDAC 2.0

‘    para saber que versao esta instalada no sistema
‘    pode usar o Component Checker Tool de
‘    Microsoft
‘    http://www.microsoft.com/data/download.htm#CCinfo
‘    ou baixar a ultima versao em
‘     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
‘ **********************
‘ ***** Comeco 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

****************
‘    Exemplo em DAO, requer DAO 3.6 ou DAO 3.5 para
‘    DAO 3.5 modificar “DAO.DBEngine.36” por
‘    “DAO.DBEngine.35”

‘    dbVersao10 = 1
‘    dbVersao11 = 8
‘    dbVersao20 = 16 <———— para Access 95
‘    dbVersao30 = 32 <———— para Access 97
‘    dbVersao40 = 64 <———— para Access 2000
****************
‘ ********** Comeco 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
‘ ********** Fim DAO ***********
end if
end if
%>

<html>
<head>
<title>Criar *.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 Gerar <> “” then
if Err then
Response.Write “Houve um erro.<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 criacao //–>
<form name=”criador” action=”criar_db.asp” method=”POST”>
Nome do 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 (requer MDAC 2.0)</small><br>
<input type=”radio” name=”metodo” value=”DAO”><small>DAO (requer DAO 3.6)</small><br><br>

<input type=”submit” value=”Criar”>
<input type=”hidden” name=”action” value=”si”>
</form>
<!– Fim formulario //–>

<%
end if
%>

</body>
</html>

Fonte: http://www.criarweb.com/artigos/580.php

Deixe um comentário