O componente Database Access é um componente usado para acessar bancos de dados de acesso aleatório, tais como Access, SQLServer, DBF, Oracle, ...
O componente Database Access permite a consulta, inserção, alteração e exclusão de dados nos bancos de dados.Tais operações são, geralmente, feitas através de comandos SQL (Structured Query Language), a qual será exemplificada mais abaixo.
Este tutorial não contém todos os comandos e possibilidades de uso do componente Database Access, uma vez que este é muito grande e complexo, mas os comandos e métodos mais utilizados estão citados neste documento.
sintaxe:
conexão com o componente: Set Conn = Server.CreateObject("ADODB.Connection")
abertura de um banco de dados já existente: Conn.Open "nome da ligação ODBC ou path do BD", "UserID", "Senha" execução de comandos SQL:
Set rsQuery = Conn.Execute("string SQL")
um modo alternativo de se abrir um banco de dados para gravação:
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open "tabela", Conn , adOpenKeyset, adLockOptimistic
Para o funcionamento correto do componente ASP, o arquivo adovbs.inc deve ser incluído no código da página que contém o código de manipulação do banco de dados.
Abaixo, uma tabela com alguns dos comandos mais usados desse componente:
| EOF | Retorna TRUE caso o ponteiro tenha chegado ao final do arquivo.(depois do último registro) | | BOF | Retorna TRUE caso o ponteiro esteja posicionado no início do arquivo.(antes do primeiro registro) | | MoveFirst | Posiciona o ponteiro para o início do banco de dados. | | MoveLast | Posiciona o ponteiro no final do banco de dados | | MoveNext | Move o ponteiro 1 registro adiante no banco de dados. | | MovePrevious | Move o ponteiro para o registro anterior no banco de dados. | | AddNew | Adiciona um novo registro ao banco de dados. É usado quando, ao invés de usar SQL, abre-se o banco de dados no modo RecordSet. | | Update | Salva as alterações feitas no banco de dados, no modo RecordSet. | |
Veja os exemplos a seguir:
Adicionando um novo registro ao banco de dados cadastro
<%
'a variavel abaixo - Connstring - guarda o path físico do banco de dados no servidor. poderia armazenar, no lugar do path, o nome da conexão ODBC, caso esta tenha sido criada (como será visto no próximo exemplo)
ConnString="DBQ=e:\aspbrasil\teste.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
Conn.Open ConnString,"",""
RS.Open "cadastro", Conn , adOpenKeyset, adLockOptimistic
RS.Addnew
RS("nome") = "João"
'a linha acima atribui o valor João ao campo nome, nesse novo registro.
RS("email") = "joao@aspbrasil.com.br"
'a linha acima atribui o valor joao@aspbrasil.com.br ao campo email do banco de dados.
RS.update
'a linha acima confirma a inclusão dos dados. Caso este comando não seja usado, o registro não é inserido.
RS.Close
Set Conn = nothing
Set RS = nothing
%>
Pronto. Foi gravado o registro acima.
Adicionando um novo registro ao banco de dados cadastro usando ligação ODBC
<%
'a variavel abaixo - Connstring - guarda o nome da conexão ODBC (há a necessidade de a ligação ODBC já estar criada).
ConnString="odbcteste"
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
Conn.Open ConnString,"",""
RS.Open "cadastro", Conn , adOpenKeyset, adLockOptimistic
RS.Addnew
RS("nome") = "João"
'a linha acima atribui o valor João ao campo nome, nesse novo registro.
RS("email") = "joao@aspbrasil.com.br"
'a linha acima atribui o valor joao@aspbrasil.com.br ao campo email do banco de dados.
RS.update
'a linha acima confirma a inclusão dos dados. Caso este comando não seja usado, o registro não é inserido.
RS.Close
Set Conn = nothing
Set RS = nothing
%>
Pronto. Foi gravado o registro acima.
Fazendo uma consulta SQL e mostrando os dados obtidos em uma tabela
<%
'a variavel abaixo - Connstring - guarda o nome da conexão ODBC (há a necessidade de a ligação ODBC já estar criada).
ConnString="odbcteste"
'a variável abaixo guarda a string SQL, usada para fazer a consulta no banco de dados. No caso, pede-se para gerar uma consulta onde apenas os registros onde o campo NOME é igual ao valor JOÃO.
SQLstring = "select * from cadastro where nome = 'joão' "
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnString,"",""
Set rsQuery = Conn.Execute(SQLstring)
'a linha acima gerou uma consulta chamada rsQuery. todos os registros que satisfazem a SQLstring estão armazenados nesta variável.
%>
<table>
<tr><td>Nome</td><td>email</td></tr>
<%
While not rsQuery.EOF
%>
<tr><td><%=rsQuery("nome").value%></td><td><%=rsQuery("email").value%></td></tr>
<%
rsQuery.Movenext
Wend
%>
</table>
<%
rsQuery.Close
set Conn = nothing
Set rsQuery = nothing
%>
Fazendo uma alteração via SQL
<%
'a variavel abaixo - Connstring - guarda o nome da conexão ODBC (há a necessidade de a ligação ODBC já estar criada).
ConnString="odbcteste"
'a variável abaixo guarda a string SQL, usada para fazer a atualização no banco de dados. No caso, pede-se para mudar o nome e o email do registro de código 5.
SQLstring = "update cadastro set nome = 'maria' and email='maria@aspbrasil.com.br' "
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnString,"",""
Set rsQuery = Conn.Execute(SQLstring)
rsQuery.Close
Set Conn = nothing
Set rsQuery = nothing
%>
Arquivo alterado.
Fazendo uma exclusão de registro via SQL
<%
'a variavel abaixo - Connstring - guarda o nome da conexão ODBC (há a necessidade de a ligação ODBC já estar criada).
ConnString="odbcteste"
'a variável abaixo guarda a string SQL, usada para fazer a exclusão do registro no banco de dados. No caso, pede-se para excluir o(s) registro(s) onde o código é 5. Por se tratar de um número e não de uma string, o valor do código, no caso 5, não fica entre aspas.
SQLstring = "delete * from cadastro where codigo = 5 "
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnString,"",""
Set rsQuery = Conn.Execute(SQLstring)
Set rsQuery = nothing
Set Conn = nothing
%>
Registro Excluído