Ir para conteúdo

Iserção Em Banco De Dados Em Asp


GM Netox

Posts Recomendados

Inserção em banco de dados usando ASP

12/06/03

Neste tutorial você aprenderá a criar uma página ASP que insira dados em um banco de dados. Como a linguagem SQL é universal, você poderá usar esta rotina em qualquer tipo de banco de dados, seja ele Access, SQL ou mySQL (acredite, é possível usá-lo com o ASP). Inserir dados a partir de um formulário é muitas vezes o sonho daqueles que estão aprendendo a fazer sites - e eu, que já passei por esta fase, venho desmistificar a pompa do nome :) ...

 

A inserção é muito útil para cadastro de usuários, controle de estoque ou qualquer outra coisa que você tenha que lidar com dados que devam ficar disponíveis mesmo após a página ser fechada. Como eu sei que você deve estar ansioso para começar, vamos lá !:

 

Parte 1 - o script em si

 

Aqui vou dar o exemplo usando um banco de dados Access, que é o mais comum, não requerendo que o servidor tenha instalado o SQL ou mySQL Server:

 

1. Iniciando a conexão

Primeiro nós temos que criar o objeto de conexão para que possamos manipular o banco de dados. O nome dele é ADODB.Connection e devemos declará-lo assim no ASP:

Set conexao = Server.CreateObject("ADODB.Connection")

 

2. Abrindo...

Agora que já temos o objeto, podemos abrir a conexão de fato e deixá-la pronta para abrir o objeto Recordset e inserir os registros:

 

conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("test_db.mdb")&";"

 

Parece confuso mas se entendermos a sua lógica, não é mais: a parte Provider=Microsoft.Jet.OLEDB.4.0 indica qual o driver que será usado para a conexão com a base de dados: não se preocupe com ela pois você pode utilizar o copiar/colar (CTRL+C CTRL+V). A parte Data Source="&Server.MapPath("test_db.mdb")&";" informa ao documento a localização do banco de dados.

 

Temos várias aspas nesta parte pois a função Server.MapPath deve estar FORA das aspas que delimitam a string: se ela estivesse dentro, o servidor iria admitir que o nome do banco de dados é "Server.MapPath("test_db.mdb")" e não informaria a localização física do arquivo test_db.mdb. O ponto-e-vírgula é só para terminar a string de conexão. Insignificante, mas indispensável ...

 

3. Abrindo a consulta

Agora, para economizar meu tempo e sua paciência, juntaremos dois passos num só: você iniciará a consulta para poder inserir os dados na tabela: o objeto é ADODB.Recordset. Possivelmente você já sabe como criar um objeto. Mas vou mostrar assim mesmo:

 

Set add_action = Server.CreateObject ("ADODB.Recordset")

 

Agora você terá de abrir mais uma coisa: uma tabela.

 

Antes de começar, entenda a lógica do processo e no final deste parágrafo você verá que este script que você está criando tem uma lógica extremamente compreensível:

 

Passo 1: abrir o Microsoft Access (este você já deve conhecer melhor)

 

Passo 2: Vá em Arquivo > Abrir e escolha o arquivo que quer usar

 

Passo 3: Acessar a lista de tabelas.

 

Passo 4: Abrir a tabela que você deseja utilizar.

 

Este roteiro será algo bem parecido com o que acontecerá com o servidor do seu aplicativo ASP na hora da inserção :) .... OK, agora vamos abrir a tabela:

 

add_action.Open "sua_tabela",conexao,3,3

 

Em detalhes: a parte entre aspas "sua_tabela" é o nome da tabela na qual você quer inserir os dados. O valor conexão, que não deve estar entre aspas pois é uma variável, é chamado de ActiveConnection: ele diz ao método Open qual conexão usar para abrir a tabela "sua_tabela". Os valores 3,3 são o tipo de cursor que o método vai usar (não se preocupe com eles) ... OK, eu sei que você é curioso: o primeiro 3 é o código do método adOpenKeyset (ele deixa o cursor estático para que somente o script possa movê-lo) e o segundo número três é o código do método adLockPessimistic.

 

Assim que começarmos a editar os valores, o banco de dados travará (no bom sentido) e garantirá uma atualização segura.

 

4. "Digitando" registros

Na prática você não vai terá de digitar de verdade: isso é apenas uma metáfora, pois será algo parecido com você digitando os registros. Primeiramente, você colocaria o cursor na última célula da última linha e pressionaria TAB. Isto criaria um novo registro.

 

Para fazer isso é bem fácil:

 

add_action.AddNew

 

Agora você vai ter que atribuir os valores e para isso terá de usar a seguinte sintaxe:

 

add_action("nome_do_campo") = "texto a ser inserido"

 

Por exemplo:

 

add_action("nome") = "Teodomiro Tiburcio Godofredo Armelindo Creosmildo"

 

Você terá que usar uma linha destas para cada registro. Para finalizar, dê o Update - que funciona como se você fosse salvar a tabela:

 

add_action.Update

 

5. "Limpando" a casa

Para não carregar o servidor, você deve fechar os objetos usados e limpar suas variáveis. No método Close, lembre-se de fechar primeiro a consulta (recordset) para depois fechar a conexão. Por quê? Simples: se você fechar a conexão primeiro, a consulta vai ficar sem o Active Connection e gerará um erro ...

 

add_action.Close
conexao.Close

 

Agora falta apenas limpar as variáveis: simplesmente utilize o Set e defina-as para "Nothing", sem aspas:

 

Set add_action = Nothing
Set conexao = Nothing

 

Esclarecendo: nove entre dez programadores que utilizam este script para inserir dados num banco de dados desejam que isso seja feito utilizando dados de um formulário: isto é perfeitamente possível, com um esforço realmente pequeno (mas lembre-se que esta página não poderá ser acessada primariamente: ela deverá ser chamada pelo ACTION de um formulário qualquer).

 

Para usar os dados dos campos:

 

No método GET

Quando chegar a hora de inserir certo valor vindo de um formulário com o método GET, use Request.QueryString ("nome_do_campo") para usar o valor do campo que quiser.

 

Exemplo:

 

add_action("nome") = Request.QueryString("nome")

 

Lembrando que o valor dentro dos parênteses e aspas de Request.QueryString deverá ser o nome do campo que você definiu pelo HTML.

 

Detalhe: para usar Request.QueryString, basta que o valor esteja na URL, não necessitando vir de um formulário. Leia o tutorial Uso de Select Case em ASP, também escrito por mim para um exemplo disso.

 

No método POST

Quase igual ao método anterior: a diferença é que o método vai ser Request.Form() e não Request.QueryString():

 

add_action("nome") = Request.Form("nome")

--

Créditos:

Rafael Almeida

--

Abraços

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...